2009-09-26 5 views
14

HELOコマンド、

私は次の配列

$appArray=array('a', 'b', 'c'); 

を持っている私は、このような'a\nb\nc\n'として出力を生成します。トラブルは、私が

implode('\n', $appArray) 

を使用するときに私は(余分なバックスラッシュに注意)'a\\nb\\nc\\n'を得るということです。

これを修正する方法はありますか?

答えて

47

お考えではありませんか?implode("\n", $appArray)?改行文字は、実際にはシングルクォーテーションでカプセル化されたときに改行文字として扱われません。

+1

私は夢中になるだろう、私はそれはあなたのポストを見るまで動作しませんでした単一引用符を使用。 –

+0

保存しました..ありがとう – zeetit

3

実際には、一重引用符で\ nは、キャリッジリターンではなく\ n(文字通り)を意味します。 implode()で二重引用符を使用してみてください。

3

\nを二重引用符で囲んでみてください。

バックスラッシュと 'n'の2つの文字として解釈され、バックスラッシュは別のバックスラッシュでエスケープされているようです。

0

これを試すことができます。

$selected = implode(",\n", preg_replace('/^(.*?)$/', "'$1'", $filters['selected_model'])); 


SELECT DISTINCT(D.model_id) AS MODEL_ID, COUNT(*) AS viewCount, t.title FROM download_logs AS D LEFT JOIN templates AS t ON D.model_id = t.id 
     WHERE D.model_type IN ('.$selected.') GROUP BY D.model_id 
6

使用PHP_EOL(行の末尾):

implode(PHP_EOL, $array);