2016-05-05 23 views
0
$string = "#hello"; 

Ich versuche hello ohne # zu haben. Ich möchte auch eine Funktion, um zu überprüfen, ob die Zeichenfolge die # enthält.wie zu überprüfen, ob eine Zeichenfolge ein Zeichen enthält

str_replace("#", " ", $string); 

und auch nicht

strstr($string,"#") 

Irgendwelche Ideen?

+2

versuchen Vielleicht Handbuch ersten :(zu lesen. – Kyslik

+1

Wie funktioniert es nicht? https://eval.in/566240 – chris85

+0

zuerst, wenn ich es tue (strstr ($ string, "#")) es geht nicht in die if-Anweisung und zweite str_replace ("#", "", $ string); fügen Sie stattdessen ein Leerzeichen hinzu –

Antwort

6

Vergleichen Sie den Rückgabewert mit dem Original.

if ($string != str_replace("#", "", $string)) 

See: http://php.net/manual/en/function.str-replace.php

+1

@BaptisteArnaud das ist was du wolltest? 'Ich versuche Hallo ohne # zu haben? – chris85

+0

Nur der Vollständigkeit halber: Sie scheinen vergessen zu haben, die Klausel der if-Anweisung mit einem ')' zu beenden. – cars10m

+0

@ cars10 behoben: P – Oisin

2

Überprüfen Sie den folgenden Code:

$string = "#hello"; 
$find = '#'; 
// verify if the string contains the # 
$pos = strpos($string, $find); 
// if present replace it 
if ($pos !== false) { 
    $string = str_replace("#", "", $string); 
} 
echo $string; 

Ausgang: hallo

+2

Warum sollte das OP "den Code unten" überprüfen? Eine *** gute Antwort *** wird immer eine Erklärung haben, was getan wurde und warum es so gemacht wurde, nicht nur für das OP, sondern auch für zukünftige Besucher von SO. –

+0

Ja, aber komm, in diesem ultra einfachen Fall, wer braucht eine Erklärung?!? Es ist wirklich selbsterklärend. Vor allem mit den eingegangenen Kommentaren. – cars10m

2

ich mit etwas kurz gehen würde, wie folgt aus:

echo strstr($string, '#') != false ? $string = str_replace("#", "", $string) : $string; 

strstr() muss getestet werden, um festzustellen, ob Sie eine Änderung vornehmen können oder nicht.

+3

* huh? * Warum wurde das abgelehnt? Das funktioniert. –

2

Sie müssen nicht prüfen, ob die Zeichenfolge das gesuchte Zeichen enthält, um str_replace zu verwenden. Wenn das gesuchte Zeichen nicht gefunden wird, gibt str_replace nur die Zeichenfolge unverändert zurück.

Wenn Sie müssen sehen, ob oder nicht '#' nach der Tat gefunden wurde, können Sie den vierten Parameter auf str_replace verwenden, die die Anzahl der Ersetzungen zählt:

$string = str_replace('#', '', $string, $count); 

Eine beliebige Anzahl von Ersatz größer als Null Willen machen den $count Variable auswerten true boolean, so können Sie überprüfen, ob Ersatz nur gemacht wurde von if($count)... mit

if ($count) { 
    echo "Replaced $count #s"; 
    // do whatever you need to do if the string has # 
} else { 
    echo 'No #s were found.'; 
} 
Verwandte Themen