una parte extraer eliminar dividir caracteres caracter cadena buscar php string

parte - strpos php



Captura el texto restante despuĂ©s del Ășltimo "/" en una cadena de php (8)

Hay muchas maneras de hacer esto. Probablemente usaría:

array_pop(explode(''/'', $string));

Entonces, digamos que tengo $somestring que tiene el valor "main / physician / physician_view".

Quiero agarrar solo "doctor_vista". Quiero que también funcione si la cadena pasada fue "main / physician_view" o "site / main / physician / physician_view".

Espero que mi pregunta tenga sentido. ¡Cualquier ayuda sería apreciada!


Las otras soluciones no siempre funcionan o son ineficientes. Aquí hay una función de utilidad general más útil que siempre funciona y puede usarse con otros términos de búsqueda.

/** * Get a substring starting from the last occurrence of a character/string * * @param string $str The subject string * @param string $last Search the subject for this string, and start the substring after the last occurrence of it. * @return string A substring from the last occurrence of $startAfter, to the end of the subject string. If $startAfter is not present in the subject, the subject is returned whole. */ function substrAfter($str, $last) { $startPos = strrpos($str, $last); if ($startPos !== false) { $startPos++; return ($startPos < strlen($str)) ? substr($str, $startPos) : ''''; } return $str; } // Examples substrAfter(''main/physician/physician_view'', ''/''); // ''physician_view'' substrAfter(''main/physician/physician_view/'', ''/''); // '''' (empty string) substrAfter(''main_physician_physician_view'', ''/''); // ''main_physician_physician_view''


Para otro trazador de líneas, puede utilizar el truco de explosión e invertir la matriz:

current(array_reverse(explode(''/'',$url)));


Puede usar strrpos() para encontrar la última ocurrencia de una cadena en otra:

substr($somestring, strrpos($somestring, ''/'') + 1)


Quizás después...

La forma más fácil incorporada en PHP para tomar la última cadena después del último / podría ser simplemente usando la función pathinfo .

De hecho, puedes comprobar esto por ti mismo,

$urlString = ''path/to/my/xximage.png''; $info = pathinfo($urlString);

Podrías hacerlo:

var_dump($info);

esto te dará algo como:

''dirname'' => string ''path/to/my/'' ''basename'' => string ''xximage.png'' ''extension'' => string ''png'' (length=3) ''filename'' => string ''xximage''

entonces, para extraer las imágenes de ese enlace, podrías hacer:

$img=$info[''basename'']; $extension=$info[''extension'']; ///etc... echo $img.".".$extension; //xximage.png

Algo pequeño, pero puede hacerte Grow_Gray_Hair_Prematurely


Simplemente puedes usar:

$id = substr( $url, strrpos( $url, ''/'' )+1 );


Use el basename , que fue creado para este propósito exacto.


$last_part = substr(strrchr($somestring, "/"), 1);

Ejemplos:

php > $a = "main/physician/physician_view"; php > $b = "main/physician_view"; php > $c = "site/main/physician/physician_view"; php > echo substr(strrchr($a, "/"), 1); physician_view php > echo substr(strrchr($b, "/"), 1); physician_view php > echo substr(strrchr($c, "/"), 1); physician_view