2012-05-22 2 views
6

J'ai une chaîne, quelque chose comme ceci:fonction inverse PHP de strstr pour revenir première partie de la chaîne, ne durera pas

$abcdef(+$1.00) 

Je suis en train de faire la première partie de la chaîne avant la première parenthèse:

$abcdef 

Actuellement, si je l'utilise strstr() il retournera la partie de la chaîne après le caractère spécifié:

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

Je veux la pièce avant l'événement. Quelle est la fonction inverse ou opposée de strstr() qui fera cela?

Répondre

12

Transmettre true comme troisième paramètre.

De l'manual page you have linked: renvoie la partie de la botte de foin avant la première occurrence de l'aiguille (à l'exception de l'aiguille) Si TRUE, strstr():

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

before_needle.

Remarque: Ce paramètre a été ajouté uniquement dans PHP 5.3. Si pour une raison quelconque vous reste une version plus ancienne, une combinaison de substr() et strpos() devrait aider:

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

Est-ce tout ce que j'avais à faire?!? Merci @ bažmegakapa – bobbiloo

+0

@BobLiu Lecture du manuel fait des merveilles;). – kapa

4

paramètre Set tiers de strstr true il fait revenir avant que l'aiguille

0

meilleure méthode pour faire de manière simple est la suivante:

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

Explication: $ result = explode ('search_for_this', search_in_this de $) [0];

Questions connexes