我有这样的代码:
if(!strstr($value, '<p>')){...}
这会将数据库中的数据输出到excel文件中,但不包括任何包含<p>
的字段。
我还想排除包含</script>
的字段
我已经尝试了这两个代码片段,但没有成功:
if((!strstr($value, '<p>')) and (!strstr($value, '</script>')))
和:
if(!strstr($value, '<p>', '</script>'))
基本上,我的问题是如何从excel文件中同时排除<p>
和</scrpit>
?
发布于 2012-11-08 19:49:22
您可以使用正则表达式和preg_match函数来执行此操作:
if(!preg_match("/(<p>|<\/script>)/", $value)) {
// Do your magic!
}
您可以在这里阅读更多关于preg_match的内容:PHP preg_match,如果您在使用正则表达式时遇到问题,请查看这个示例:example,并尝试使用它来掌握正则表达式。
据我所知,你的逻辑应该工作得很好。也许您的$value变量保存了错误的数据。不管怎样,你有一些东西可以让你继续前进。
希望这能有所帮助!
发布于 2012-11-08 19:51:31
这是可行的。
<?php
$a = array('ok0', 'somthing <p>','2222 </script>', 'ok1');
foreach ($a as $value)
if((!strstr($value, '<p>')) && (!strstr($value, '</script>')))
echo $value;
发布于 2012-11-08 19:50:15
我建议使用strpos
,但这应该可以很好地工作:
if(!strstr($value, '<p>') and !strstr($value, '</script>')){
// Write your file
}
...if没有,一定有别的事情发生了。例如,您的$value
可能不是您所期望的。
EDIT将&&
替换为and
per op的代码示例
https://stackoverflow.com/questions/13296566
复制