2010-02-12 8 views
0

Si j'ai une chaîne de caractères comme ceci:Comment supprimer une partie d'une chaîne

Ceci est une chaîne de test et je wa

Et je voulais supprimer tout ce qui suit le « I "qui comprendrait aussi l'espace après le je, comment ferais-je cela? Je dois absolument commencer à la fin de la chaîne et compter à rebours vers le dernier espace mais je ne suis pas sûr de savoir comment faire.

+1

Quelles sont les exigences exactes? Quel genre de cordes espérez-vous recevoir? Quel genre de cordes comptez-vous retirer? Si c'est seulement la chaîne exacte et les exigences, il n'y a aucun intérêt à l'automatiser. Si non, alors nous avons besoin de plus d'informations sur les exigences exactes. –

+0

Pour clarifier: est-ce que le 'I' sera toujours le dernier' I', ou faut-il que ce soit tout de la première occurrence de 'I'. Est-ce que c'est toujours ce que vous cherchez? Etc. etc. –

+0

D'accord. La chaîne va changer aussi bien que la longueur. Actuellement, j'ai la longueur de chaîne définie à 34 caractères. Ce dont j'ai besoin c'est que le dernier mot soit coupé si le mot n'est pas complet comme dans mon exemple ci-dessus. – Jim

Répondre

1

Utilisez cette option pour trouver la dernière occurence d'un caractère dans une chaîne

http://www.php.net/manual/en/function.strrpos.php

$pos = strrpos($mystring, "I"); 

substr Puis diviser la chaîne

http://ca2.php.net/manual/en/function.substr.php

$newstring = substr($mystring, $pos); 
+0

Merci Chad, je vais y jeter un coup d'oeil maintenant. – Jim

+0

@Jim, j'ai ajouté la méthode pour le diviser une fois que vous trouvez l'emplacement du "je" – CaffGeek

+0

Merci Chad. La chaîne sera cependant dynamique. Je ne suis pas sûr de pouvoir utiliser des strpos pour ça. – Jim

2

Vous pouvez supprimer tout après le 'je' en utilisant:

$str = 'This is a test string and I wa'; 
$new_string = substr($str, 0, strpos($str, 'I') + 1); 

Note: strpos trouve la première occurrence du caractère 'I'.

+0

Utilisez strrpos pour trouver la dernière occurrence si vous le souhaitez.Ce sera: '$ str = 'Ceci est une chaîne de test et je suis'; $ new_string = substr ($ str, 0, strrpos ($ str, 'I') + 1); ' – Emil

0

Vous êtes exigence est pas vraiment clair ... mais

si vous voulez supprimer tout ce qui suit le « je »

 
$s = 'This is a test string and I wa'; 
$pos = strpos($s, 'I'); 
if ($pos !== false) 
{ 
    $s = substr($s, 0, $pos + 1); 
} 

si vous voulez supprimer le dernier espace et tout ce qui suit si

 
$s = 'This is a test string and I wa'; 
$pos = strrpos($s, ' '); 
if ($pos !== false) 
{ 
    $s = substr($s, 0, $pos); 
} 
Questions connexes