私は新しい行( '\ n')を含まないPHPの長い文字列を持っています。改行のないPHPの長い文字列
私のコーディング規約では、100文字を超える行は許可されません。
長い文字列を複数の行に分割する方法はありますか?演算子の効率が悪い - 2つの文字列を連結する必要はありません。 という単一の文字列として指定することができます。
ありがとうございます!
heredoc構文でY
私は新しい行( '\ n')を含まないPHPの長い文字列を持っています。改行のないPHPの長い文字列
私のコーディング規約では、100文字を超える行は許可されません。
長い文字列を複数の行に分割する方法はありますか?演算子の効率が悪い - 2つの文字列を連結する必要はありません。 という単一の文字列として指定することができます。
ありがとうございます!
heredoc構文でY
(またはnowdoc、あなたのニーズに応じて、ドキュメントのリンクを確認してください):
$multiline = <<<EOT
My name is "$name". I am printing some $foo->foo.
This should print a capital 'A': \x41
EOT;
$singleline = str_replace("\n","",$multiline);
しかし、これは吸います... :-)申し訳ありません
あなたは文字列から改行文字を取り除くことができます:
$myStr = "
here is my string
and it is spread across multiple lines
";
$myStr = str_replace("\n", "", $myStr);
そのようなものには連結演算子(。)を使用します。オペコードキャッシング(APC)を使用している場合、パフォーマンスペナルティは無視できます。これは、実行時間の式にDBアクセスと追加のロジック(ループを含む)を取るときに目立つものではありません。
更新:
読み取り、以下のページを与えます。上記の結論は本文では容易に入手できませんが、有効であることを慎重に検討する必要があります。
http://blog.golemon.com/2006/06/how-long-is-piece-of-string.html
オペコードのキャッシングは文字列連結の速度にどのように影響しますか? –
パーサは、動的要素のない文字列を1つの長い文字列として扱い、連結演算子を削除します。私はしばらく前にこの主題を掘り下げました。私は再びそれを見つけるために管理すると、関連する記事でこの答えを更新します。 –
これはすべての問題を解決し、右のコード、次のとおりです。
$myStr = "
here is my string
and it is spread across multiple lines
";
$myStr = str_replace(array("\r","\n"), "", $myStr);
それはLIOR Cohenの回答に基づいて、それはまた、 "\ rを" キャリッジリターンをストリップされます。
heredocの問題は、文字列に改行文字を含めることです。この改行文字は、質問が指定した「改行を含まない文字列」を得るために取り除かれなければなりません。 – Amber
Liorが –
と表示されているので、ストリップすることができます。ただし、連結を使用するのと同じようにパフォーマンスが低下します。 – Amber