Frage

Ich bin eine Zeichenkette wie unten

drucken

Code:

echo "&words=".$rs['pw']."&"; 

Ausgabe:

  

& words = Hilfe | Gut

Beachten Sie, dass der letzte & nicht gedruckt wird.

Aber wenn ich fügen Sie ein Leerzeichen nach & dann wie unten

gedruckt wird

Code:

echo "&words=".$rs['pw']."& "; 

Ausgabe:

  

& words = Hilfe | Good &

Jetzt & gedruckt wird.

Warum sein Vorkommnis und was ist der Grund für dieses Verhalten?

War es hilfreich?

Lösung

Wenn Sie es auf einen Web-Browser sind Ausgeben Sie die & mithilfe von &amp; wurden entkommen sollten „&“ in HTML verwendet wird vielen Strings zu entkommen, und in URLs so ist ein spezielles Zeichen, wie <> usw.

Andere Tipps

Wenn Sie es in einer Web-Seite sind ausgegeben wird, dann wird der Browser & besondere interpretieren. Wählen Sie bei „Quelltext anzeigen“ in Ihrem Browser, und Sie werden die Roh-Ausgabe. Wenn Sie es brauchen in einem HTML-Kontext erscheinen, werden Sie die Zeichenfolge durch htmlspecialchars vor dem Drucken es passieren müssen. Also:

$rs['pw'] = "Help|Good";
echo htmlspecialchars("&words=".$rs['pw']."&");

Dieser Code funktioniert für mich

$rs['pw'] = "Help|Good";
echo "&words=".$rs['pw']."&";

Output

  

& words = Hilfe | Good &

Was mich zu einer Frage führt: Was ist der Kontext? Wo ist dieser Code ausgegeben werden Sie es auf einem Webserver ausgeführt wird und in einem Browser angezeigt? Gibt es keinen anderen Code beteiligt, dass kann die Ursache sein?

Wenn der Kontext etwas ist wie in HTML ausgegeben wird, dann müssen Sie sicherstellen, dass es an der richtigen Stelle ist. In HTML Ampersand ist etwas Besonderes und man sollte es entkommen. In der Regel das bedeutet in &amp; übersetzen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top