Kezdőoldal » Számítástechnika » Weblapkészítés » Miért Filezilla hibásan tölti...

Miért Filezilla hibásan tölti fel néha a PHP fájlokat?

Figyelt kérdés
pl. egy 300 soros PHP fájlt úgy tölti fel hogy 1 sorban van az egész összenyomva... Nem állítottam semmit, 3.18-as verzió van fent ami elég friss
2017. okt. 5. 20:47
 1/5 anonim ***** válasza:
Ez a kérdés milyen nyelven van?
2017. okt. 5. 21:12
Hasznos számodra ez a válasz?
 2/5 2*Sü ***** válasza:
100%

Hát ezt jól megaztmondtad… :-)


Valószínű a probléma abból fakad, hogy különböző rendszerekben máshogy jelölik a sorvéget. A probléma még a monitor nélküli számítógépekre vezethető vissza, amik a számítási eredményeket papírra nyomtatták. Ott külön vezérlőjel volt a soremelésre, ami a papírt feljebb görgette egy sorral, és külön vezérlőjel volt arra, hogy a nyomtatófej – „kocsi” – menjen vissza a sor elejére. Ahhoz, hogy a nyomtatófej a következő sor elejére jusson, mindkét vezérlőjelet ki kellett adni.


Hogy ez két külön jel volt, annak volt értelme. Pl. ha csak a kocsi vissza vezérlőjelet adták ki a nyomtatónak, akkor rá lehetett nyomtatni az előző sorra, pl. aláhúzás jelekkel „_” alá lehetett húzni a szöveget. A soremeléssel, és más vezérlőjelekkel lehetett az előző sorhoz képest relatíve pozicionálni a kurzort.


A kocsi vissza (carriage return vagy CR) vezérlőjelnek az ASCII táblában a 13-as jel felel meg, a nyelvek zömében a \r escape szekvencia jelöli.


A soremelés (line feed vagy LF) vezérlőjelnek az ASCII táblában a 10-es jel felel meg, a nyelvek zömében a \n escape szekvencia jelöli.


~ ~ ~


És itt kezdődnek a bonyodalmak.


A Windows megtartotta az eredeti jelölést, és \r\n (CRLF) jelet használta a szöveges fájlokban az új sor jelölésére.


A Linuxban – afféle spórolásképpen – az egyik jelet hagyták csak meg, mégpedig a \n (LF) vezérlőkaraktert.


A Mac rendszerekben is csak az egyiket hagyták meg, mégpedig a \r (CR) vezérlőkaraktert.


Ha a linuxos soremeléssel kódolt szövegfájlt egy erre fel nem készített maces, vagy windowsos szövegszerkesztővel nyitod meg, akkor azok nem fogják a \n jelet soremelésnek tekinteni.


Ha a windowsos módszerrel hozol létre egy szövegfájlt, akkor meg mondjuk egy linuxos gépen lesz probléma az arra fel nem készített programoknál, mert minden sor végén lesz egy \r jel, ami nem a sortörés része. (Pl. Bash scriptek esetén hibát jelez, ha CRLF sortörés van.)


~ ~ ~


A probléma másik forrása az FTP protokollal van. Kétféle feltöltési mód létezik, a bináris, ami bájtra pontosan ugyanazt tölti fel, mint az eredeti volt, és a text feltöltés, ami konvertálja feltöltéskor a szövegfájlt. Azaz a CRLF sortörést használó szövegfájlból LF sortörést használó szövegfájl lesz a szerveren. Mivel viszont ez csak a feltöltésre vonatkozik, a letöltött fájl is LF sortörést fog tartalmazni, és az arra fel nem készített szövegszerkesztő – pl. Jegyzettömb – nem fogja sortörésnek tekinteni.


~ ~ ~


Megoldás:


1. Ha PHP-zel, akkor szokj rá a linuxos sortörés használatára.

2. Használj olyan szövegszerkesztőt, ami támogatja ezt. A legtöbb kódszerkesztő támogatja, pl. Notepad++, Sublime, stb…

3. Az FTP-nél mindig bináris feltöltést állíts be.

2017. okt. 6. 00:19
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
FTP Binary mode ;-)
2017. okt. 6. 08:19
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:

2-es köszi a "szófosást" és az időded, elmélkedtem rajta, hasznosnak tartottam.

3-as, igen az volt a baj :) De hogy miért nem ismerte fel a Filezilla automatikusan a Hostgator CPanel rendszerét, nem tudom.


Notepad++ -t használok, de az a baj hogy most semmit sem szerkesztettem csak egy Plugin-t frissíteni akartam hogy a fájlokat csak átírom (így nem kell kikapcsolni a plugint addig). Csak hibákat generált.

2017. okt. 6. 21:11
 5/5 2*Sü ***** válasza:
Teljesen mindegy, hogy szerkesztetted-e a fájlt. A sorvég jelek a feltöltés során változnak meg, ha az FTP nem bináris módban van. Akkor is, ha ugyanazt a fájlt töltöd fel, ami fent volt.
2017. okt. 7. 10:59
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!