2012-05-22 21 views
6

tengo una cadena, algo como esto:función de PHP Enfrente de strstr para regresar primera parte de la cadena, no durará

$abcdef(+$1.00) 

que estoy tratando de conseguir la primera parte de la cadena antes del primer paréntesis:

$abcdef 

Actualmente si uso strstr() se devolverá la parte de la cadena después de que el carácter especificado:

$newstr = strstr($var, '('); 

Quiero la pieza antes de que ocurra. ¿Cuál es la función inversa u opuesta de strstr() que hará eso?

Respuesta

12

Pasa verdadero como el tercer parámetro.

Desde el manual page you have linked:

string strstr (string $haystack , mixed $needle [, bool $before_needle = false ]) 

before_needle: Si es TRUE, strstr() devuelve la parte de la pajar antes de la primera aparición de la aguja (con exclusión de la aguja).

Nota: Este parámetro solo se agregó en PHP 5.3. Si por alguna razón se quedan con una versión más antigua, una combinación de substr() y strpos() debería ayudar:

$newstr = substr($var, 0, strpos($var, '(')); 
+0

¿¡Eso es todo lo que tenía que hacer !? Gracias @ bažmegakapa – bobbiloo

+0

@BobLiu Leer el manual hace maravillas;). – kapa

4

Establecer tercer parámetro de strstr a cierto volverá ocurrencia antes de aguja

0

mejor método para hacer esto de una manera sencilla es:

$ newstr = explotar ('(', $ var) [0];

Explicación: $ resultado = explotar ('search_for_this', $ search_in_this) [0];

Cuestiones relacionadas