PHP preg_match给出了错误的值
我用php构建了一个csv文件,试图获取2013年、2014年、2015年的数据,并在以后构建它们 我使用了preg match,但这仍然给了我文件中所有的年份 代码如下所示:PHP preg_match给出了错误的值,php,csv,preg-match,explode,Php,Csv,Preg Match,Explode,我用php构建了一个csv文件,试图获取2013年、2014年、2015年的数据,并在以后构建它们 我使用了preg match,但这仍然给了我文件中所有的年份 代码如下所示: $sql = "SELECT * FROM `table 1`"; $result = mysql_query($sql); while ($row = mysql_fetch_assoc($result)) { $print2013 = ""; $print2014 = ""; $print
$sql = "SELECT * FROM `table 1`";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
$print2013 = "";
$print2014 = "";
$print2015 = "";
$explode = explode("\r\n", $row['COL 19']);
foreach ($explode as $key => $value19b)
{
if(preg_match('/2013/', $value19b))
{
$print2013 .= "\"$value19b\r\n\"";
}
if(preg_match('/2014/', $value19b))
{
$print2014 .= "\"$value19b\r\n\"";
}
if(preg_match('/2015/', $value19b))
{
$print2015 .= "\"$value19b\r\n\"";
}
echo $print2013;
echo $print2014;
echo $print2015;
}
}
这应该会在数据库的变量$print2013中保存所有的2013,但我也会得到该变量的2014和2015(其他变量也是)
如果我回显得到的示例:
[COL 19] => 14.12.2014 sent mail
6.11.13: control
26.6.2015 blabla
...
有人知道为什么会发生这种情况。什么是
$row['COL 19']
的内容?$row number代表csv的列我认为,$row number的数据是csv文件中数据所在的行,在这种情况下,$row['COL 19']的值类似于2013年去丘奇或2014年去学校等等,但是编辑您的问题并添加一些示例。您不需要使用preg\u match
来搜索文本字符串,strpos
也可以更快地完成同样的任务<代码>mysql函数现在已经过时,因为有几个php版本,您应该使用mysqli
函数或PDO。关于您的方法,如果我是您,我将使用SQL查询来完成大部分工作。