我似乎无法检索存储在数据库中的正则表达式 - php

时间:2013-10-29 21:35:17

标签: php mysql regex arrays

所以我在查询结果时遇到了一些问题。

<?php
$query = "SELECT re_diag_DL
          FROM game_win_regex 
          WHERE game_id = 1
          LIMIT 1";
$con = mysqli_connect("localhost",'root','','game');
$result = mysqli_query($con,$query);
$row = mysqli_fetch_all($result,MYSQLI_BOTH);
echo $row['re_diag_DL'][0];
?>

字段内容是正则表达式:

((?<!z,)[1]

但回声正在给出

((?

绝对是在搞乱数组结构,print_r()给出了

Array ( [0] => Array ( [0] => ((?

我打算在preg_match_all中使用此结果。任何有关此事的帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

很可能回声是在网络浏览器中完成的,浏览器期望标签以<开头。

检查页面的源代码,而不是呈现的页面。

顺便说一句,您可以安全地在$row['re_diag_DL'][0]中使用preg_match_all的结果,因为它只是一个显示问题。

答案 1 :(得分:0)

要在浏览器中查看,请使用htmlentities()。正如Mosty Mostacho所述,浏览器对待&lt;和&gt;作为HTML标记,不会将它们显示为文本。

答案 2 :(得分:0)

放置

header("Content-type: text/plain");

在php文件的开头。或者查看HTML文档的来源。或者包装在PRE标签中。您的regexp被浏览器视为html标记。