preg_match_all当模式是YII中的变量时出错
我有一个称为字典的表,其中有一些词要在从另一个表中拉出的文本中找到。我使用preg_match_all来匹配文本中的单词。我尝试了很多不同的解决方案,可以在网上找到,但目前还没有运气。看来问题在于当我创建一个变量$ pattern来保存文本时,请参阅下面的代码。任何帮助都感激不尽。preg_match_all当模式是YII中的变量时出错
<?php $words= Dictionary::model()->findAllBySql("select word from tbl_dictionary ");?> <?php foreach ($words as $word): ?> <?php //$matches = array()?>
<?php $string =$data->text_content; $pattern = "/\b($string)\b/" ; preg_match('.$pattern.', $word->word, $match);?>
<?php echo var_dump($match); ?>
<?php endforeach ;?>
回答:
我这样做是错误的。变量$ pattern应该包含我正在查找的单词以及$ word-> word应该是 $ data-> text_content。只有净化的$ data-> text_content
<?php $words= Dictionary::model()->findAllBySql("select word from tbl_dictionary ");?> <?php foreach ($words as $word): ?>
<?php //$matches = array()
$CHtmlPurifier = new CHtmlPurifier();
$CHtmlPurifier->options = array('HTML.ForbiddenElements' => array('br, p, img,<'));
$purified = $CHtmlPurifier->purify($data->text_content);
preg_match("/$word->word/", $purified, $match);
?>
<?php echo var_dump($match); ?>
以上是 preg_match_all当模式是YII中的变量时出错 的全部内容, 来源链接: utcz.com/qa/265253.html