这是我目前的代码.
<?php$da_data = $_POST['dadata'];
$da_data = htmlspecialchars($da_data, ENT_QUOTES);
$da_data = str_replace('<', '', $da_data);
$da_data = str_replace(">", '', $da_data);
$da_data = str_getcsv($da_data, ",", "'");
print_r($da_data);
?>
Run Code Online (Sandbox Code Playgroud)
示例数据:
"Bill, Rose Mary" <bill@co.bill.ca.us>,"asasd, test" <test@co.test.ca.us>,
Run Code Online (Sandbox Code Playgroud)
它吐出来了
Array (
[0] => \"Bill
[1] => Rose Mary\" bill@co.bill.ca.us
[2] => \"asasd
[3] => test\" test@co.test.ca.us
[4] =>
)
Run Code Online (Sandbox Code Playgroud)
我想把名字和电子邮件放在一起反对分开.我错过了什么?
我正在寻找一个使用PHP 5中的preg_match_all的正则表达式,它允许我用逗号分隔字符串,只要逗号不存在于单引号内,允许转义单引号.示例数据将是:
(some_array, 'some, string goes here','another_string','this string may contain "double quotes" but, it can\'t split, on escaped single quotes', anonquotedstring, 83448545, 1210597346 + '000', 1241722133 + '000')
Run Code Online (Sandbox Code Playgroud)
这应该产生如下匹配:
(some_array
'some, string goes here'
'another_string'
'this string may contain "double quotes" but, it can\'t split, on escaped single quotes'
anonquotedstring
83448545
1210597346 + '000'
1241722133 + '000')
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多很多正则表达式...我现在看起来像这样,虽然它不能正确匹配100%.(它仍然在单引号内分割一些逗号.)
"/'(.*?)(?<!(?<!\\\)\\\)'|[^,]+/"
Run Code Online (Sandbox Code Playgroud)