2012-02-24 18 views
22

Bu işe yaramazsa: string İçinde "\ n" karakteri yokDizenin yeni satır sonu olup olmadığını nasıl algılayabilirim?

$string = 'Hello 
    world'; 

if(strpos($string, '\n')) { 
    echo 'New line break found'; 
} 
else { 
    echo 'not found'; 
} 

Açıkçası çünkü. Ancak, bir form alanına girmek için kullanıcının enter tuşuna basmasının sonucu olan bir satır sonu olup olmadığını nasıl kontrol edebilirim?

+1

'\ n' ifadesini PHP_EOL ile değiştirmeyi deneyin. –

+2

Belki de çift tırnak işareti kullanmalısınız: '\ n" 'veya' preg_match ('/ [\ n \ r] /') ' – biziclop

+0

Girdikten sonra bir formun nasıl gönderileceğini merak ediyor musunuz? Eğer öyleyse, ihtiyacınız olmayacak. Gönder düğmesi gönder düğmesini kullandığı sürece, bir girişe sunmalıdır. – CoffeeRain

cevap

50

Mevcut testiniz çalışmıyor çünkü satır sonu karakterinizi ('\n') çift tırnak işareti kullanmıyorsunuz.

if(strstr($string, PHP_EOL)) {

Ayrıca strpos 0 dönecektir ve deyimi ilk FALSE olarak değerlendirecektir unutmayın: Eğer çapraz işletim sistemi uyumluluğu isterseniz,

if(strstr($string, "\n")) {

Veya: Değiştirmek o Karakter \n, strstr daha iyi bir seçimdir. Alternatif için strpos kullanımını değiştirebilir:

if(strpos($string, "\n") !== FALSE) { 
    echo 'New line break found'; 
} 
else { 
    echo 'not found'; 
} 
+2

Kullanıcının bilgisayar bağımlı değil, bağımlı kullanıcılardan aldığınız satır sonları sunucu bağımlı değil mi? – biziclop

+0

Sadece geniş konturlarda konuşuyorum ... Her zaman PHP_EOL işlevini kullanmaya çalışıyorum, bu yüzden kodum her durumda çalışıyor. Ancak, bir kullanıcıdan gelen verilerle uğraşırsanız haklısınız. – rdlowrey

+3

Bu kötü bir yanıt çünkü PHP_EOL işletim sistemleri arasında farklılık gösteriyor. – kjdion84

3

satır sonu pencerelerde \r\n ve UNIX makinelerde bu \n olduğunu. , işletim sistemi uyumluluğu için "\ n" yerine PHP_EOL aramasını yapın veya "\ r \ n" ve "\ n" ifadelerini arayın.

+1

Her iki satır sonu da \ n 'içeriyorsa, yalnızca satır sonlarını" algılamak "için yalnızca \ n \ çapraz-işletim sistemi uyumlu olmak için arama yapmanız gerekir. – MrWhite

İlgili konular