次のような文字列から各単語を抽出する最適な方法は何ですか。
one, two, "big three", four, "seven and eight"
二重引用符で囲まれたものは、単一の要素として扱う必要があります。
array("one", "two", "big three", "four", "seven and eight")
独自のパーサーを使用するのではなく、CSVパーサーを使用する必要があります。PHPには、必要なことを正確に実行する組み込み関数があります— str_getcsv
:
$tags = str_getcsv($string);
foreach($tags as $tag) {
...
}
これにはPHP5.3が必要であることに注意してください。「ユーザー投稿メモ」には、このための多くの回避策が示されています。
使用できます:
$tags = explode(',', $string);
foreach($tags as &$tag)
{
$tag = trim($tag);
}
(コードはチェックされません)
php> = 5.3を使用している場合は、関数str_getcsvがあります。
$tags = str_getcsv($tags, ',', '"', '\\');
$tags = array_map('trim', $tags);