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?
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:
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:
Ausgabe:
Gefunden foo an Position 1
Gefunden foo auf Position 8
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.
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.