国产探花免费观看_亚洲丰满少妇自慰呻吟_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的方式上傳文件時,也可以避免換行丟失的問題.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长丰县| 呼图壁县| 乌审旗| 英山县| 黄大仙区| 将乐县| 剑阁县| 吉隆县| 芷江| 花莲县| 敦煌市| 灵山县| 宜兴市| 友谊县| 略阳县| 宁波市| 延庆县| 贵定县| 乌兰察布市| 永昌县| 奈曼旗| 孝义市| 安新县| 乌兰浩特市| 绥芬河市| 启东市| 图片| 湟中县| 康定县| 望城县| 和龙市| 通城县| 丽江市| 成武县| 尉犁县| 阜阳市| 会同县| 得荣县| 綦江县| 德保县| 新蔡县|