2010-12-17 4 views
1

Ich habe dies in einer while-Schleife:PHP Stripping "/" Tag des img beim Schließen

echo '<a class="thumbnail" href="./images/bus-photos/'.$row['file'].'">'; 
echo '<img alt="'.$row['caption'].'"'. 'src="./images/bus-photos/thumbs/tmb'.$row['file'].'"/></a>'; 

Es gibt diesen:

<img src="./images/bus-photos/thumbs/tmb134-trap-door.jpg" alt="Trap Door"> 

Ich kann nicht scheinen, nur das bekommen Bild-Tag geschlossen ... traurig, aber wahr.

+1

Wie kann es die src vor der Beschriftung ausgeben? durch Ausgabe meinst du HTML-Quellausgabe oder Firebug-Ausgabe? –

+3

hast du die Quelle angezeigt oder hast du sie in firebug/some-other-debugger überprüft? Firebug normalisiert Ihre Ansicht und ist keine Möglichkeit, den ** tatsächlichen ** Quellcode anzuzeigen. – zzzzBov

Antwort

3

Meine Vermutung ist, dass Sie Firebug oder eine andere Art von DOM-Inspektor verwenden, um die Quelle anzuzeigen. Tun Sie das nicht, wenn Sie tatsächlich sehen möchten, wie Ihr HTML aussieht. Verwenden Sie "Quelle anzeigen" oder die Entsprechung Ihres Browsers.

Verwenden Sie nicht "View Generated Source" (Web Developer-Add-On) entweder als das Quelldokument noch aus dem DOM erstellt. Siehe DisplayGroup decorator in Zend Framework


Ein andere Sache, die wahrscheinlich helfen ... Es ist in der Regel einfacher gemischten Markup und serverseitigen Druck zu folgen, wenn Sie in der und aus dem serverseitigen Kontext brechen. Zum Beispiel

<img 
    alt="<?php echo htmlspecialchars($row['caption']) ?>" 
    src="./images/bus-photos/thumbs/tmb<?php echo htmlspecialchars($row['file']) ?>" 
    /> 
+0

Ja, Firebug. Quelltext anzeigen: Trap Door So gibt es nach dem alt-Wert ein abschließendes "/". – JCam

+1

@Jamie Abgesehen von Ihrer redundanten close/open Zeichenfolge und dem fehlenden Platz zwischen 'alt' und' src', kann ich keine Fehler sehen oder woher der Schrägstrich kommt. Ich habe meine Antwort bearbeitet, um einige Hinweise zum Mischen von PHP und HTML zu geben. – Phil

+0

Ich habe ein Leerzeichen zwischen alt und src eingefügt und es behoben. Da dies innerhalb einer Schleife ist, sieht es nicht so aus, als könnte ich PHP verlassen, aber der zusätzliche Aufwand wird sehr geschätzt. Ich werde mir die Funktion htmlspecialchars() ansehen. Ich steige einfach in die serverseitigen Sachen. Vielen Dank für die Hilfe! – JCam

1

Ich würde vermuten, dass Sie eine HTML-Cleanup-Bibliothek in PHP verwenden, die den Schrägstrich entfernt - in HTML müssen Sie einige Elemente nicht schließen, z. B. Bilder und Zeilenumbrüche. Lass es aus.

+0

Guter Punkt. Der Doctype ist xhtml, also muss ich die Image-Tags schließen. Ich habe das Tag des Beitrags von HTML zu XHTML geändert. Danke, dass du darauf hingewiesen hast. – JCam

1

Die Prämisse Ihrer Frage ist falsch. Diese Ausgabe stammt eindeutig nicht aus dem Code, von dem Sie denken, dass er es tut.

+0

Danke, dass Sie sich die Zeit genommen haben, keinen Wert hinzuzufügen. – JCam

+2

@Jamie - Echo ** manipuliert nicht die Daten, die es zum Ausdrucken erhält. Daher kann der von Ihnen gepostete Code ** diese Ausgabe nicht verursachen. Veröffentlichen Sie mehr von Ihrem Code, damit wir sehen können, was passiert –

+0

Das hängt ganz davon ab, wie diese Ausgabe vor der Präsentation interpretiert wird;) – Phil