PHP: implode ('\ n', $ appArray) ekstra oluşturur '\'

6 Cevap

, Helo

Ben şu dizi var

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

Böyle 'a\nb\nc\n' olarak çıktı üretmek istiyoruz. Sorun olduğunu ben kullandığınızda

implode('\n', $appArray)

I 'a\\nb\\nc\\n' (ekstra ters eğik çizgi unutmayın) olsun.

Bu nasıl düzeltmek için herhangi bir fikir?

6 Cevap

Eğer niyetinde değil emin misiniz: implode("\n", $appArray)? 'Tek tırnak' kapsüllü zaman yeni satır karakterleri aslında satır karakter olarak kabul edilmez.

Aslında, tek tırnak \ n \ n (kelimenin tam anlamıyla) değil, satırbaşı anlamına gelir. Implode çift tırnak () kullanmayı deneyin.

Çift tırnak \n kuşatan sahipsiniz.

Bir ters eğik çizgi ve bir 'n', ve ters bölü başka ile öncelenmedikçe: Onlar iki karakter olarak yorumlanıyor gibi geliyor.

Bu deneyebilirsiniz.

  $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

Bu çalışır:

implode ("<br />", $ string)

İşte bu.

Demek istedin galiba

implode(PHP_EOL,$string);