長い文字列から名前とメールのペアを区切る際に区切り文字としてコンマを使用する関数があります。この関数を変更して、コンマの代わりに改行が使用されているかどうかを検出できるようにしたいと思います。変更が必要な関数は次のとおりです。
$str = '"Fname Lname" <abc@email.com>, abc@gmail.com';
$pairs = explode( ",", $str );
foreach( $pairs as $pair ) {
if( strpos($pair, '<') ) {
$output = explode( "<", $pair );
$output['0'] = trim( str_replace( "\"", "", $output['0'] ) );
$output['1'] = trim( rtrim( $output['1'], ">" ) );
} else {
$output = array();
$output['0'] = '';
$output['1'] = $pair;
}
print_r($output); // Save it to database here
}
file()関数の使用を提案する投稿を見つけましたが、これら2つを組み合わせる方法がわかりません。
$str = '"Fname Lname" <abc@email.com>, abc@gmail.com';
$pairs = file($str, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);