在PHP中搜索字符串标题后的数据
我试图让脚本搜索$open_email_msg,不同的电子邮件将有不同的信息,但格式如下。我只想要他们在Title:或Tags:或Categories:之后放的任何东西,不管数据是什么,而不是字符串“Title:”或“Tags:”或“Categories:”这只是整个代码的一个片段,其余的将信息插入MySQL表,然后发布到网站上的新闻文章中 有人能帮我找到解决办法吗 严格的电子邮件格式: 新闻更新在PHP中搜索字符串标题后的数据,php,mysql,strpos,Php,Mysql,Strpos,我试图让脚本搜索$open_email_msg,不同的电子邮件将有不同的信息,但格式如下。我只想要他们在Title:或Tags:或Categories:之后放的任何东西,不管数据是什么,而不是字符串“Title:”或“Tags:”或“Categories:”这只是整个代码的一个片段,其余的将信息插入MySQL表,然后发布到网站上的新闻文章中 有人能帮我找到解决办法吗 严格的电子邮件格式: 新闻更新 标题:文章标题 标签:tag1 tag2 类别:文章类别,第二篇文章类别 片段:文章片段。 信息:
标题:文章标题
标签:tag1 tag2
类别:文章类别,第二篇文章类别
片段:文章片段。
信息: 文章消息。图像。更多的文字,更多的文字。洛雷姆·英普苏姆·多洛·希特·阿梅特
试试这个:
$lines = explode("\r\n", $open_email_msg); // Replace with whatever the line separator is
foreach($lines as $line){
$temp = explode(": ", $line, 2);
$msg[$temp[0]] = $temp[1];
}
// Now we have an array like
array(
"Title" => "Article Title",
"Tags" => "tag1 tag2",
"Categories" => "Article Category, 2nd Article Category",
"Snippet" => "Article Snippet",
"Message" => "..."
)
preg_match_all('/([^:\\s]+): (.+)/', $open_email_msg, $matches, PREG_SET_ORDER);
echo '<pre>' . print_r($matches, 1) . '</pre>';
试试这个:
$lines = explode("\r\n", $open_email_msg); // Replace with whatever the line separator is
foreach($lines as $line){
$temp = explode(": ", $line, 2);
$msg[$temp[0]] = $temp[1];
}
// Now we have an array like
array(
"Title" => "Article Title",
"Tags" => "tag1 tag2",
"Categories" => "Article Category, 2nd Article Category",
"Snippet" => "Article Snippet",
"Message" => "..."
)
preg_match_all('/([^:\\s]+): (.+)/', $open_email_msg, $matches, PREG_SET_ORDER);
echo '<pre>' . print_r($matches, 1) . '</pre>';
preg\u match\u all('/([^:\\s]+):(.+)/',$open\u email\u msg,$matches,preg\u SET\u ORDER);
回显“”。打印($matches,1)。”;
如果它是一种严格的格式,你就不能在换行符上拆分,然后从换行符开始吗?你说的行分隔符是什么意思?我使用了它,它给我的只是一个单词数组,一直在日期应该在的位置。为什么呢?