名前のあるデータベースがあり、名前のスペースの後にPHP置換を使用したい、データの例:
$x="Laura Smith";
$y="John. Smith"
$z="John Doe";
返して欲しい
Laura
John.
John
名前のあるデータベースがあり、名前のスペースの後にPHP置換を使用したい、データの例:
$x="Laura Smith";
$y="John. Smith"
$z="John Doe";
返して欲しい
Laura
John.
John
ミックスに追加するだけで、最近このテクニックを学びました。
list($s) = explode(' ',$s);
ただし、以前に strtok メソッドに出くわしたことがないため、簡単なベンチマークを行いました。strtok は、指定された文字列の例で、リスト/分解ソリューションよりも 25% 高速です。
また、最初の文字列が長く/区切られているほど、パフォーマンスのギャップが大きくなります。5000 語のブロックを与えると、explode は 5000 要素の配列を作成します。strtok は最初の「要素」だけを取り、残りを文字列としてメモリに残します。
したがって、strtokが勝ちます。
$s = strtok($s,' ');
これを行うと、スペース文字の後のすべてが置き換えられます。ダッシュにも使用できます:
$str=substr($str, 0, strrpos($str, ' '));
正規表現を使用する必要はありません。単にexplodeメソッドを使用してください。
$item = explode(" ", $x);
echo $item[0]; //Laura
TheBlackBenzKid が提供するメソッドは質問に対して有効ですが、スペースを含まない引数を指定すると、空白の文字列が返されます。
正規表現は計算コストが高くなりますが、柔軟性が大幅に向上します。たとえば、次のようになります。
function get_first_word($str)
{
return (preg_match('/(\S)*/', $str, $matches) ? $matches[0] : $str);
}
このようにすることもできます
$str = preg_split ('/\s/',$x);
print $str[0];
この回答は、受け入れられた回答の場合のように最後のスペースではなく、最初のスペースの後のすべてを削除しますstrpos
。substr
$str = "CP hello jldjslf0";
$str = substr($str, 0, strpos( $str, ' '));
echo $str;