0

ここで少し奇妙な問題があります。

仕事用のマシンでFileZillaとNotepad++を使用しています。

基本的に、PHPスクリプトをアップロードするたびに、すべてのコードがランダムな文字に変わります

たとえば、次のコード:

<?php echo 'hello world'; ?>

になる

<?php ਍攀挀栀漀 ✀栀攀氀氀漀✀㬀ഀ ?>

FTP転送モードがASCIIに設定されています。私は何か間違ったことをしていますか、それは悪いFTP設定ですか?

ありがとうピーター

4

2 に答える 2

1

あなたの新しいオフィスのために頑張ってください!xD

ASCIIモードのftp転送は、プレーンテキストファイルを使用している場合、およびテキストファイルを正しくエンコードする必要があるコード(スクリプト)がある場合にのみ役立ちます。

ASCIIモードは、実際には「このファイルをテキストファイルとして処理する」ことを意味します

正しくエンコードする必要が ある可能性のあるテキストファイルは、「実際にテキストファイル」です: txt、ini、conf(phpはhtml / xmlを出力し、行末は関係ありません)

FTP ASCIIモードによって行末バイトに置き換えられると、一部のエンコーディングでファイル全体が破損する可能性があります...実際には、これはUTF-8では発生しないはずです。その場合、明らかに、他のエンコーディングを使用しています。 ..

私の意見では、2012年には、ファイルをアップロードしたままにしておく方がよいでしょう。クライアント、スクリプト、およびアプリケーションは、任意のシステムの任意のテキストファイルを正しく解析できる必要があります。

次に:バイナリとしてアップロードし、スクリプトが行末のバイトシーケンスを処理できることを確認します

たとえば、行末で分割する必要がある場合は、

// works everywhere with any file with any line ending
preg_split('/\r\n|\r|\n/', $text);

それ以外の

// works everywhere but only with files that contain
// line endings equivalent to the actual PHP_EOL content
explode(PHP_EOL, $text); 

はっきりしていることを願って...私の英語を自由に訂正してください!

于 2012-08-04T15:23:23.750 に答える
1

ftpクライアントは、入力の文字セットを台無しにします。アップロードモードをバイナリに変更すれば完了です。

于 2012-08-04T16:41:53.190 に答える