Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 preg_match_all不使用mysql数据库结果变量?_Php_Mysql_Preg Match All - Fatal编程技术网

Php preg_match_all不使用mysql数据库结果变量?

Php preg_match_all不使用mysql数据库结果变量?,php,mysql,preg-match-all,Php,Mysql,Preg Match All,--更新-- 好的,我已经把范围缩小到要检查的关键字,如果关键字硬编码到数组中,它们将只与它们之间的空格匹配。如果数组中带有空格的关键字是来自数据库的结果,则preg_match_all失败,结果为0 如果我用php硬编码数组,比如 $myarray = array("This is my Phrase","This is my Second Phrase"); 然后对照文本进行检查,以扫描preg_match_all将找到两个阶段,但是 如果我这样做是为了创建阵列: $result1

--更新-- 好的,我已经把范围缩小到要检查的关键字,如果关键字硬编码到数组中,它们将只与它们之间的空格匹配。如果数组中带有空格的关键字是来自数据库的结果,则preg_match_all失败,结果为0

如果我用php硬编码数组,比如

  $myarray = array("This is my Phrase","This is my Second Phrase");
然后对照文本进行检查,以扫描preg_match_all将找到两个阶段,但是 如果我这样做是为了创建阵列:

  $result1 = mysql_result($result,$i,"firstphrase"); 
  $result2 = mysql_result($result,$i,"secondphrase"); 
  $myarray = array($result1,$result2);
下面的preg_match_all将失败,并且找不到短语,但是如果我用单个单词而不是短语填充数组,它将起作用。所以我假设我必须准备包含从数据库返回的空格的字符串,但我不确定该怎么做,或者我需要重新格式化正则表达式模式

    foreach ($myarray as $K) {
    $pattern = "/\b($K)\b/";
    $count = preg_match_all($pattern, $texttoscan, $matches); 
    if($count > 0){ echo "matched"; }
}

数据库文本是否可能包含换行符,而硬编码文本没有?如果是这样,您可能希望使用
m
修饰符来允许多行匹配。这将使正则表达式:

$pattern = "/\b($K)\b/m";

希望有帮助。此外,除非您试图特别匹配UTF单词/字符,否则您不应该对此有任何问题。

数据库文本是否可能包含换行符,而硬编码文本则没有?如果是这样,您可能希望使用
m
修饰符来允许多行匹配。这将使正则表达式:

$pattern = "/\b($K)\b/m";

希望有帮助。此外,除非您试图特别匹配UTF单词/字符,否则您不应该有任何问题。

这听起来像是编码问题。strlen($texttoscan)——结果是你所期望的结果,还是比预期的更大?另外,您的PHP源代码保存在什么编码中?这听起来像是一个编码问题。strlen($texttoscan)——结果是你所期望的结果,还是比预期的更大?还有,你的PHP源代码保存在什么编码中?哇,谢谢,这正是它原来的样子,它现在就像一个符咒:DWow,谢谢,这正是它原来的样子,它现在就像一个符咒:D