これは、アプリケーションをオンラインで展開しているときに既に 2 回発生した問題であり、偶然に 2 回解決したこともありますが、問題の原因を理解することはできませんでした。3回目ですが、いまだに悩んでいます。
私はローカルで PHP ファイルと Notepad++ を使用しています (ファイルは UTF-8 でエンコードされており、BOM エンコードされていません)。ここ (config: easyPHP) では、PHP エラーなしですべてがうまく機能します。
ファイルをサーバーにアップロードした後、一部のファイルで *unexpected T_FUNCTION in line 1* のような基本的な PHP エラーが表示されますが、コードにはエラーはありません。
幸運なことに、たまたま Windows のメモ帳でファイルを開いたところ、ヒントが得られました。文字間にスペースや改行がありません (これが、PHP でエラーが発生する理由です)。総括する:
Notepad++ で開いたファイル:
<?php
// Comment
function() { etc... (rest of the file)...
Windows のメモ帳で開いたファイル:
<?php//comment function(){ ... which causes error online (but not on EasyPHP)
私はどこでも見て、できる限りのことをしました(メモ帳++で改行を追加する、ANSI/UTF8に変換するなど、ファイルが破損しているかのようです)。これは、コピーしたスクリプトなどではありません。Windows に新しい *.txt ドキュメントを追加し、名前を *.php に変更して、すべてのファイルを作成します。
私の質問:
- Notepad++ と Windows のメモ帳で異なる改行が表示されるのはなぜですか? エンコーディングの問題ですか?Windows/UNIX でファイルの解釈が異なる?
- オンラインではなく、簡単な PHP を使用するコンピューターでこれが機能するのはなぜですか?
ヒントがなければ、回答をよろしくお願いします。