国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

ftp軟件的bug: 上傳和下載的php文件換行丟失

2024-05-04 21:49:38
字體:
來源:轉載
供稿:網友

最近發現一個奇怪的事件,剛編輯好的php文件上傳到Linux服務器上,然后下載后就發現代碼在一行,換行符丟失了,找了好久才找到解決辦法,分享如下。

在使用ftp軟件上傳下載php源文件時,我們偶爾會發現在本地windows下notepad++編輯器寫好的php文件,在使用ftp上傳到linux服務器后,php文件的換行符全部丟失了,導致php文件無法正常運行。

這個時候,再次通過ftp軟件把剛才上傳的php文件下載到本地windows,用notepad++編輯器打開后,發現php源代碼變成了一行,換行丟失。

發生這種情況的原因是什么呢?飄易就以一句話概括下:

由于linux下換行是n,而windows下換行是rn,當ftp軟件在上傳時,默認是以ASCII方式上傳的,而ASCII方式上傳文件有個特點,會將文件里的換行符進行適當處理以符合上傳服務器的運行環境。在這個過程中,部分文件就會處理不當,出現換行符丟失的bug。(注意,不是全部php文件,是小部分的php文件會出現這個問題)。

上訴問題尤其在php源碼里有單行注釋符“//”時,會導致php源文件直接無法運行。因為源碼變成了一行代碼后,單行注釋符把//后面所有的代碼都注釋掉了。

FTP上傳bug解決方法:

方法1:將單行注釋符 // 改成 多行注釋符 /* 注釋文字 */ 這樣即使換行符丟失,也不影響后面源碼的執行。(但是下載到本地二次修改時,依然是件頭疼的事!)

方法2:FTP上傳php文件不要使用ASCII模式,全部使用二進制方式。這是最保險的。 如何設置ftp軟件以二進制方式Binary上傳,請網絡搜索下自己使用的ftp軟件的設置方式。

知識補充:FTP的ASCII和Binary傳輸模式:

FTP有ASCII和Binary兩種傳輸模式:

Binary模式不會對數據進行任何處理。

Ascii模式會將回車換行轉換為本機的回車字符。

由于WINDOWS和UNIX的行結束符不一樣。所以從WINDOWS用Binary傳輸方式傳輸文本文件到UNIX時可能會出現^M。同樣從UNIX用Binary方式傳輸文件到WINDOWS時,也可能出現回車換行顯示不正確的問題。

WINDOWS下新建ftp_ascii.txt內容如下:

  1. hello word! 
  2. WINDOWD TO UNIX ! 
  3. TEST FTP ASCII; 

我們分別用兩種模式上傳到UNIX.

ASCII模式正常

  1. vi ftp_ascii.txt 
  2. hello word! 
  3. WINDOWD TO UNIX ! 
  4. TEST FTP ASCII; 

二進制模式 Binary有問題

  1. vi ftp_ascii.txt 
  2. hello word!^M 
  3. WINDOWD TO UNIX !^M 
  4. TEST FTP Binary;  

由此可知我們采用ASCII模式傳輸文本可以避免傳輸中的^M問題,FTP中雖然ASCII模式可以避免^M的問題,但大多數情況還是選擇Binary方式,這樣可以保證傳輸的內容不會被改變,尤其是在傳輸可執行文件如php源碼時,大多選用binary方式.

在FlashFXP中可以在菜單->會話->傳輸模式中 選擇ASCII,BINARY,自動三種模式.

另外,我們以ssh登錄sftp的方式上傳文件時,也可以避免換行丟失的問題.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴里| 文登市| 张家口市| 平潭县| 内乡县| 西昌市| 内乡县| 苍溪县| 泸州市| 镇平县| 资源县| 镇巴县| 榆中县| 盐津县| 永顺县| 泰顺县| 普陀区| 墨脱县| 玉山县| 丰台区| 勐海县| 南投市| 旺苍县| 广西| 南昌市| 江北区| 广德县| 固始县| 榆中县| 湘阴县| 湖北省| 彰武县| 泾阳县| 衡东县| 尉氏县| 页游| 高唐县| 安顺市| 楚雄市| 南江县| 屏山县|