2017-04-25 8 views
-1

Ich möchte einige Zeichen durch eine andere mit Sonderbedingung ersetzen. wieersetzen Sonderzeichen aus Zeichenfolge

so, wenn

a string contains _ is then replace it with . 
a string contains __ is then replace it with _ (remove single _ multiple _) 
a string starting with # then replace it with $ 
a string starting with ## then replace it with # 

Ich habe versucht,

str_replace('_', '.', $string); 

aber alles ersetzen _ zu. Ich will nicht alle ersetzen _ Ich möchte nur nur einzelne zu ersetzen _ like ('4__69' gibt 4..69)

+5

Im Allgemeinen müssen Sie tun es versuchen, bevor es geschehen wird ... –

+0

So sind wir da, um Ihre Hausaufgaben zu machen? – Troyer

+2

Bei [so] wird von Ihnen erwartet, dass Sie versuchen ** den Code selbst zu schreiben **. Nach ** [weitere Recherchen durchführen] (// meta.stackoverflow.com/questions/261592)** Wenn du ein Problem hast, kannst du ** alles posten, was du versucht hast ** mit einer ** klaren Erklärung dessen, was isn ' t funktioniert ** und liefert ein [** minimales, vollständiges und verifizierbares Beispiel **] (// stackoverflow.com/help/mcve). Ich schlage vor, eine gute Frage und die perfekte Frage zu lesen (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/). Achten Sie auch darauf, die [Tour] zu nehmen und ** [this] (// meta.stackoverflow.com/questions/347937/)** zu lesen. –

Antwort

0

verwenden Array mit Schlüssel und Wert und in foreach Schleife Benutzer str_replace Funktion, um Schlüssel mit zu ersetzen Wert

$string_spe = array("__"=>"_","_"=>".","##"=>"#","#"=>"$"); 

$string_val ="__HI This is me"; 
foreach($string_spe as $key => $value){ 
$string_val =str_replace($key,$value,$string_val); 
} 
0

Zum Beispiel haben wir:

<?php 
$text = "Hello, asd!"; //Random text 
$var = str_replace("asd", "qwe", $text); //Replacing 'asd' with 'qwe' everywhere 
echo $var; 
?> 

Die oben ersetzen 'asd' mit 'qwe' und AUSGABE:

Hello, qwe! 


Ein weiteres Beispiel:

<?php 
$text = "Hello, JOHNasd123!"; //Random text - note 'asd' is in the middle of the string 
$var = str_replace("asd", "qwe", $text); //Replacing 'asd' with 'doe' everywhere 
echo $var; 
?> 

Und das zweite Beispiel ersetzen 'asd', die in der Mitte der Zeichenfolge mit 'doe' und Willen Ausgabe lautet:

Hello, JOHNdoe123! 


Für die zweite Frage sollten Sie verwenden:

str_replace("__", ".", $string); //Note that the underlines '__' are two! 

Hinweis: str_replace ($ symbolToBeReplaced, $ ersetzendesSymbol, $ Variable); arbeitet auch mit Zahlen und alle Arten von Saiten und etc.

Verwandte Themen