PHP bir cümlenin ilk kelimesini almak nasıl?

9 Cevap php

Ben bir dizeden bir değişkenin ilk sözcüğü ayıklamak istiyorum. Örneğin, bu giriş alabilir:

<?php $myvalue = 'Test me more'; ?>

The resultant output should be Test, which is the first word of the input. How can I do this?

9 Cevap

Aşağıdaki gibi explode işlevini kullanabilirsiniz:

$myvalue = 'Test me more';
$arr = explode(' ',trim($myvalue));
echo $arr[0]; // will print Test

(tokens), bazı ayırıcı (ler) dayalı küçük dizeleri bir dize bölmek için kullanılan bir dize işlevi (strtok) vardır. Bu konu amaçları için, ilk kelime (birinci boşluk karakterinden önce bir şey olarak tanımlanır) Test me more boşluk karakteri tokenizing dize ile elde edilebilir.

<?php
$value = "Test me more";
echo strtok($value, " "); // Test
?>

Daha fazla bilgi ve örnekler için strtok PHP manual page bkz.

PHP 5.3 varsa

$myvalue = 'Test me more';
echo strstr($myvalue, ' ', true);

Alternatif gibi bir şeydir:

$i = strpos($myvalue, ' ');
echo substr($myvalue, 0, $i !== false ? $i : strlen($myvalue));

Ya da kullanarak bunu yapmak için nasıl işaret rahatsız olmayacak bunu kullanarak pek çok cevabı vardır ki, patlayabilir.

Yapabileceğin

echo current(explode(' ',$myvalue));
<?php
  $value = "Hello world";
  $tokens = explode(" ", $value);
  echo $tokens[0];
?>

Sadece giriş ve çıkış çıkan dizinin ilk elemanı her kelimeyi almak için patlayabilir kullanın.

Bölünmüş fonksiyonunu kullanarak da dize ilk kelime alabilirsiniz.

<?php
$myvalue ="Test me more";
$result=split(" ",$myvalue);
echo $result[0];
?>

Sadece durumda siz dize bir kelime ile başlar emin değil ...

$input = ' Test me more ';
echo preg_replace('/(\s*)([^\s]*)(.*)/', '$2', $input); //Test

şahsen strsplit / explode / strtok böylece daha accute bölünmüş \w ile düzenli ifade kullanmak olsun, sözcük sınırları desteklemiyor

preg_split('/[\s]+/',$string,1);

Bu 1 bir limit sınırları ile kelime bölünmüş olacaktır.