Finde mehrere String-Positionen in PHP

7

Ich schreibe eine PHP-Seite, die die angegebene URL analysiert. Was ich tun kann, ist nur das erste Vorkommen zu finden, aber wenn ich es echo, bekomme ich einen anderen Wert als das gegebene.

das habe ich bis jetzt gemacht.

%Vor%

Ich weiß, dass eine Schleife verwendet werden kann, aber ich kenne die Bedingung weder den Körper der Schleife wäre.

Und wie kann ich die Ausgabe zeigen, die ich brauche?

    
sikas 13.10.2010, 11:37
quelle

4 Antworten

16

Dies passiert, weil Sie strpos für htmlspecialchars($str) verwenden, Sie aber substr für $str verwenden.

htmlspecialchars() konvertiert Sonderzeichen in HTML-Entitäten. Nehmen Sie ein kleines Beispiel:

%Vor%

Um dies zu beheben, benutze den gleichen Heuhaufen in beiden Funktionen.

Um Ihnen andere Fragen zu beantworten, wie Sie alle Vorkommen einer Zeichenfolge in einer anderen finden können, können Sie das dritte Argument von strpos , Offset, gibt an, wo gesucht werden soll. Beispiel:

%Vor%

Ausgabe:

  

Gefunden foo an Position 1
   Gefunden foo auf Position 8

    
codaddict 13.10.2010, 11:41
quelle
5

Verwenden:

%Vor%

Erklärung: Setzen Sie ) nach false hinter $start) , so dass $pos = strpos(($str),$toFind,$start) zwischen () steht.

Benutze auch != false , weil php.net sagt: 'Diese Funktion kann Boolean FALSE zurückgeben, aber auch einen nicht-booleschen Wert zurückgeben, der zu FALSE ausgewertet wird, z. B. 0 oder "" . Bitte lesen Sie den Abschnitt über Boolesche Informationen für weitere Informationen. Verwenden Sie den Operator === , um den Rückgabewert dieser Funktion zu testen.

    
Marco Vogelaar 21.09.2011 11:15
quelle
3
%Vor%

Dies funktioniert außerhalb des Gatters, und es wird keine Endlosschleife wie oben ausgeführt, und mit! == wird eine Übereinstimmung an Position 0 ermöglicht.

    
codeymcgoo 09.05.2012 20:27
quelle
1
%Vor%     
Ghulam Rasool 14.07.2015 21:05
quelle

Tags und Links