Autor Zpráva
p.kopecky
Profil
Ahoj, Prosím o radu.
Mam soubor fotky.txt který má na prvním řádku "*" na druhém "jmeno" (bez uvozovek) ,ale když jej načtu a vypíšu pomocí

<?php 
$soubor = fopen("./fotky.txt", "r");
$obsahradku = fgets($soubor);
echo $obsahradku;
$obsahradku = fgets($soubor);
echo $obsahradku;
?>   

tak na obrazovce je za každým vypsaným řádkem mezera " ". Vypadá to takto:
"* jmeno "

Dělá mi to potíže při vyhodnocování obsahu řádku, jelikož je skládám do adres k souborům fotek a ty s mezerami samozřejmě nefungují.

Děkuji za rady, proč mi tam mezery vznikají a jak se jich zbavit.
JakubHekal
Profil
Co použít trim
Keeehi
Profil
Když pouziješ toto, tak čím řádky končí?
echo bin2hex($obsahradku).'<br>';

0A, 0D, 20 nebo něco jiného?
p.kopecky
Profil
Keeehi:
když načty "*" napíše na obrazovku "2a0d0a" bez konečné mezery. Ale jak z toho udělám opět "*"??


JakubHekal:
trim-em budu odřezávat konečnou mezeru, ale já bych chtěl vyřešit proč ji to vůbec píše.
nemůže to být kodováním externího souboru a html stránky?
blaaablaaa
Profil
p.kopecky:
2A je hvězdička, 0D0A znamená konec řádku. Takže fgets načte celý řádek včetně značky pro konec řádku. Ten lze smazat např. pomocí rtrim($str, "\r\n").
Keeehi
Profil
Jinak ještě doplním, že v html se po sobě jdoucí bílé znaky (tedy i znak konce řádku) zobrazí jako jedna mezera. To jen pro vysvětlení, proč byly vidět mezery a ne nové řádky. Když by jsi se ale podíval na zdrojový kód stránky, tak ty nové řádky tam budou.
p.kopecky
Profil
Keeehi:
děkuji za vysvětlení, budu mazat konec řádku.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0