Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中搜索字符串标题后的数据_Php_Mysql_Strpos - Fatal编程技术网

在PHP中搜索字符串标题后的数据

在PHP中搜索字符串标题后的数据,php,mysql,strpos,Php,Mysql,Strpos,我试图让脚本搜索$open_email_msg,不同的电子邮件将有不同的信息,但格式如下。我只想要他们在Title:或Tags:或Categories:之后放的任何东西,不管数据是什么,而不是字符串“Title:”或“Tags:”或“Categories:”这只是整个代码的一个片段,其余的将信息插入MySQL表,然后发布到网站上的新闻文章中 有人能帮我找到解决办法吗 严格的电子邮件格式: 新闻更新 标题:文章标题 标签:tag1 tag2 类别:文章类别,第二篇文章类别 片段:文章片段。 信息:

我试图让脚本搜索$open_email_msg,不同的电子邮件将有不同的信息,但格式如下。我只想要他们在Title:或Tags:或Categories:之后放的任何东西,不管数据是什么,而不是字符串“Title:”或“Tags:”或“Categories:”这只是整个代码的一个片段,其余的将信息插入MySQL表,然后发布到网站上的新闻文章中

有人能帮我找到解决办法吗

严格的电子邮件格式:

新闻更新
标题:文章标题
标签: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)。”;

如果它是一种严格的格式,你就不能在换行符上拆分,然后从换行符开始吗?你说的行分隔符是什么意思?我使用了它,它给我的只是一个单词数组,一直在日期应该在的位置。为什么呢?