私はアップロードしていないファイルをダウンロードすることができますが、キャリッジリターンはそのままですが、アップロードするとファイルは1行に配置されます。FTPでphpファイルをアップロードすると、すべての改行とCRが失われます。
これは、エラーがあったとして、それが困難なこのアプリをトラブルシューティングするために作っているが、すべてがライン上に1
なぜこの出来事はありますか?
私はアップロードしていないファイルをダウンロードすることができますが、キャリッジリターンはそのままですが、アップロードするとファイルは1行に配置されます。FTPでphpファイルをアップロードすると、すべての改行とCRが失われます。
これは、エラーがあったとして、それが困難なこのアプリをトラブルシューティングするために作っているが、すべてがライン上に1
なぜこの出来事はありますか?
FTPが「すべてを1行に入れる」とは考えにくいです。おそらく、ファイルが* nix形式の行末を使用していて、バイナリモードでファイルをWindowsマシンにアップロードしたものなどです。
異なるプラットフォームには、「新しい行」を表すための異なる文字列があります。 Windowsでは、それは最も一般的にはCR
+ LF
ですが、* nixでは、それはちょうどLF
です。問題は、多くのソフトウェアが、テキストファイルがどの行末にあるべきかを判断し、文字がLF
の場合、改行文字として認識しません。だから、すべてが1行にあるように見えます。 (私はPHPが行末についてとても肛門だったとは思っていませんでしたが、他の言語も見ていました)
バイナリモードではバイト単位でファイルバイトを送信し、行末は変換しません。あなたが画像や何かをダウンロードしたりアップロードしたりするのは素晴らしいことです。しかし、異なるOSを実行しているマシン間でバイナリモードでテキストファイルを転送している場合は、「間違った」行末の結果が表示される可能性があります。
解決策:PHPファイルにASCIIモードを使用します。ほとんどのFTPクライアントには、使用するモード、および特定の種類のファイルに使用するモードの設定があります。 PHPファイルはテキストなので、ほとんどの場合ASCIIモードで転送されるはずです。私のために働いた
ソリューション:
いくつかの背景情報from here:
テキスト/ ASCIIモードでは、Windowsの行末(CR + LF)を使用してファイルをダウンロードし、サーバーが不正なCR + CRが得られ、CR + LFとLFを置き換えます+ LF。 WinSCPの内部エディタでこのようなファイルを開くと、エディタはシーケンスを2つの行末(CRおよびCR + LF)として解釈し、各行およびすべてのコンテンツ行の後に空白行を表示します。ファイルが保存されると、内部エディタは2つのWindows行末CR + LFとCR + LFを保存します。アップロード時に2つのLFに変換されます。回避策は、外部エディタを使用して、WinSCPが編集済みファイルに対してテキストモードを強制しないようにすることです。
FTPツールをバイナリモードに設定してみてください。 – Thilo