2016-07-08 2 views
0

Ich entwerfe eine Webseite und habe ein Problem mit meinem HTML bekommen. Ich führe Inhalte aus einer PHP-Datei aus und wiederhole sie, um sie dann auf meiner Seite anzuzeigen, aber mein Browser fügt eine Nummer 1 hinzu, nachdem der Inhalt der PHP-Datei geparst wurde.Es gibt eine Nummer 1, die auf meiner HTML Seite erscheint, obwohl ich sie nicht dort eingegeben habe

Hier ist mein HTML (und PHP):

<section id="header"> 
<div style="float: left; padding-top: 0px; vertical-align: central;"> 
<a href="/home"><img src="/img/site/logo.png" alt="DibDibCraft Logo" height="50" width="167" class="logo" /></a> 
</div> 

<?php echo(include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php')); ?> 
</section> 

und hier ist der Inhalt von header.php:

<link rel="stylesheet" type="text/css" href="/style/layout.css" /> 

<div id="navBarBtnContainer">Hello</div> 

Die 1 ist nach dem Inhalt von header.php analysiert und befoe die platziert wird Ende des Abschnitts (vor der </section> Marke). Hier ist ein Screenshot:

Number 2 added to HTML page.

Wie Sie sehen können, die Nummer 1 wird, bevor </section> hinzugefügt wird.

Ich habe meinen Code in einem HTML-und einem PHP-Parser überprüft und beide haben keine Fehler zurückgegeben, die ein Ergebnis wie folgt ergeben würden.

Ich weiß auch nicht, was der Name dieses Fehlers ist (wenn es ein Fehler ist), so konnte ich Hilfe nicht finden, ohne auf dieser Website zu fragen, so entschuldigen Sie bitte, wenn dies eine doppelte Frage ist Könnten Sie mich bitte auf eine Frage hinweisen, die bei diesem Problem helfen könnte, wenn es sich um ein Duplikat handelt?

Vielen Dank, DibDibs

PS: Könnten Sie mir auch sagen, warum dies geschieht, wird dies mir helfen, wieder den gleichen Fehler zu vermeiden, dass in der Zukunft,

+2

'include' gibt true/false zurück (oder irgendeinen' return' Wert, der in der enthaltenen Datei gesetzt wurde), um den Erfolg/Misserfolg der Include-Operation zu signalisieren, die Sie aushecken. –

+0

Ja, es ist, Entschuldigung, aber Sie müssen nicht downvote :( – DibDibs

+0

Keine Sorge; Ich kann sehen, wie es schwierig gewesen wäre, die doppelte Frage zu finden, ohne zu wissen, dass dies durch include verursacht wurde. Ich habe nicht downvoted. –

Antwort

2

Problem :) Dank mit

<?php echo(include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php')); ?> 

entfernen Echo in dieser Linie

schließlich Ausgabe lautet:

<?php include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php'); ?> 
+0

Ich wusste, dass es so einfach war, danke: D Es ist, weil ich das Gleiche zweimal wiederhole, nicht wahr? – DibDibs

+0

Danke, dein Lebensretter, es hat geklappt: D – DibDibs

+0

werde ich, lass es mich aber nicht für weitere 10 Minuten machen;) – DibDibs

1
include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php') 

kehrt Boolean als true == 1 , wenn Sie die vorherige Codezeile echo es 1 zurückgibt, weil es erfolgreich zu sein und zurück true

die echo löschen und es wird

+0

Macht Sinn, danke;) – DibDibs

1

Der Grund verschwinden dies geschieht liegt an diesem Code.

<?php echo(include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php')); ?> 

Sie sind tatsächlich echo ing das zurückgegebene Ergebnis der verschachtelten include() Anweisung Aufruf, die 1 ist (lose true - fragen Sie mich nicht, warum PHP boolean true hier nicht verwendet werden).

logisch das gleiche wie sein würde:

// this line generates expect HTML output 
$success = include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php'); 
// this line generates unexpected 1 output 
echo($success); 

Da Ihr gehören tatsächlich erzeugt HTML-Ausgabe, Ihre voraussichtliche HTML korrekt gerendert.Sie geben dann das Ergebnis 1 der Include-Aktion zurück, wodurch 1 angezeigt wird.

Verwandte Themen