dodatkowy odstęp przy wrzucaniu kodu funkcją include()

0

Część,

mam pytanie bo nie wiem z czego to wynika a wujek google nie rozwiał moich wątpliwości.

przy wrzucaniu części kodu funkcją include() tworzy mi się dodatkowy odstęp u góry kodu którzy przed chwilką wrzuciłem.

NP.

jeżeli napiszę tak

<html>
<head>
   <!-- kod dotyczący head -->
</head>

<body>
<!-- kod dotyczący nagłówka -->

</body>
</html>

to wszystko jest OK

a jeżeli kod z nagłówka wrzucę include() bo np chcę sobie podzielić kod na pliki

<html>
<head>
   <!-- kod dotyczący head -->
</head>

<body>
include("naglowek.php");

</body>
</html>

gdzie w pliku naglowek.php mam kod dotyczący nagłówka to tworzy mi się dodatkowy odstęp między górą strony a nagłówkiem. Sprawdzałem kod strony jak to widzi przeglądarka i nie ma w ogóle żadnej różnicy a jednak odstęp jest. Co jest nie tak? Jak zlikwidować ten odstęp?

0

Oczywiście kod PHP powinien być pomiędzy <?php i ?>, ale to pewnie wiesz. Ciężko cokolwiek powiedzieć bazując na tym co napisałeś - ale można raczej bezpiecznie założyć, że funkcja include nie dodaje od siebie żadnych, ale to żadnych znaków. A to oznacza, że cokolwiek złego się stało musi dziać się w pliku naglowek.php - pokaż więc ten plik, a może coś się wyjaśni.

Druga sprawa, że twierdzisz iż przeglądarka dostaje identyczny kod, a pokazuje coś innego. To raczej niespotykana sprawa, może jest jakaś różnica, której nie dostrzegasz.

0

możenie tyle sprawdzaj kod strony co poprzez google-tools "zbadaj" element, może tam jest jakiś margin/padding czy co

0

mozesz sprobowac otworzyc plik w wordzie i tam usunac niepotrzebne znaki spacji i enterow potem zapisac, moze to pomoze

0

sprawdz tez id=nazwa, czesto jest tak ze jak masz jakas nazwe z id ktora odwoluje sie do css to samoczynnie robi odstep, to zmien nazwe id w jakims <input id=nazwa_w css na ta sama nazwe , ktora wywoluje samoczynnie odstep, pozdro

0

np masz <input text="text" albo="albo" checkbox="checkbox" itd..="itd.." potem="potem" masz="masz" id="nazwa">; to kolejny <input z id=" " <- tu zmien na ta sama nazwe z poptrzedniego inputa ktory robi ci odstep, pozdro

0

Dzięki za wszystkie porady :) były pomocne przy moim kombinowaniu

W sumie to nie dodałem że korzystam z bootstrapa i chciałem coś powrzucać w php (podzielić kod strony głownej na mniejsze części, szkielt zrobić w bootstrapie a te mniejsze części kodu wrzucać za pomoca php i trzymać je w osobnych plikach dla szybszego diagnozowania usterek)
początkowy kod wyglądał tak
w pliku głównym miałem

<?php include("contents.php"); ?>

a w pliku contents.php miałem treść

	<div class="row">
		<div class="container">
			jakaś treść
		</div>
	</div>

i to nie działało poprawnie bo tworzyło mi jakiś dziwny odstęp na górze elementu "row"
ale ja zrobiłem tak
plik głowny

	<div class="row">
		<div class="container">
			<?php include("contents.php"); ?>
		</div>
	</div>

a w pliku contents.php

jakaś dowolna treść

nagle odstęp zniknął. W sumie to dokładnie nie wiem dlaczego, bo jak dla mnie powinno się to w obu przypadkach zachować tak samo. No ale jeszcze nie wszystkie tajniki bootstrapa, htmla, cssa i phpa sa dla mnie jasne :)

pozdrawiam

2

To nie ma związku ani z CSS ani z HTML ani PHP ani Bootstrapem :)

To tylko zwykły BOM: https://pl.wikipedia.org/wiki/BOM_(informatyka)

Jak przeglądarka w środku kodu HTML trafi na znacznik BOM (bo z jednego pliku dołączasz drugi, który ma na początku BOM) to wyrenderuje go jako odstęp (czasem jako spację, czasem jako wymuszoną nową linię, czasem wcale - różne przypadki na oczy widziałem).

IDE najczęściej mają opcję usuwania BOM. Notatnik Windowsowy na chama doda Ci BOM w niektórych przypadkach, a jest niewidoczny z poziomu edytora. W PHPStorm obecność BOM w danym pliku oraz możliwość jego usunięcia jest w menu File:
title

0

cos takiego np. zadziala ci w php, bez zbednych dodatkow:
echo "".$tablica[$a][$b][$c]."";
pozdro

1 użytkowników online, w tym zalogowanych: 0, gości: 1