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,&lt'));

$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

回到顶部