web-dev-qa-db-ja.com

php検証の問題行末文字が無効です。 「\ n」が必要ですが、「\ r \ n」が見つかりました

私はSublimeテキストエディターを使用しています。 validator でPrestashopモジュールを検証したい。ただし、End of line character is invalid; expected "\n" but found "\r\n"のようなエラーが表示されます。このコード行には<?phpのみが含まれています。別のエディターから検索して「\ r\n」を「\ n」に置き換えました。しかし、それはまったく機能していません。この問題を解決する方法を教えてください。どんな助けや提案も本当に感謝するでしょう。ありがとう

9
NewUser

これはオペレーティングシステムの問題です。これは、クロスプラットフォームでコーディングしているときに発生します。オペレーティングシステムには、行末を解釈するさまざまな方法があります。ここで、これは役立つかもしれません:

行末を変換

また、sublimeにはこれに対する解決策もあります。 Unix用にコーディングしている場合は、Unix用の改行を必ず変更してください。 View->Line Endings->Unix

このソリューションは、実際にはもう少し詳細です。

http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/

12
Nate I

最も洗練された解決策は、WindowsではなくLinuxを使用してコーディングすることです。簡単に言うと、Linuxは改行に\ nを使用し、Windowsは\ r\nを使用します。

メモ帳よりも高度なほとんどのエディターは、ファイルをWindowsスタイルからLinuxスタイルに変換することをサポートしています。それぞれのメニューを閲覧するだけです。

そして書かれた解決策を提供するためにin PHP:

<?php
$input = file_get_contents("old.php");
$data = str_replace("\r\n", "\n", $input);
file_put_contents("new.php");

ほとんどの通常のエディターはバックスラッシュを文字のバックスラッシュと同じように使用し、\ nを改行文字のエスケープシーケンスとしてではなく、単にバックスラッシュとnとして解釈するため、置換はおそらく機能しませんでした。

1