-1

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

<?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 中使用这个结果。对此问题的任何帮助将不胜感激。

4

3 回答 3

0

很可能回显是在 Web 浏览器中完成的,并且浏览器需要一个以 . 开头的标记<

检查页面的源代码,而不是渲染的页面。

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

于 2013-10-29T21:38:17.203 回答
0

要在浏览器中查看,请使用 htmlentities()。正如 Mosty Mostacho 所说,浏览器将 < 和 > 视为 HTML 标记,而不会将它们显示为文本。

于 2013-10-29T21:39:15.190 回答
0

地方

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

在 php 文件的开头。或者查看 HTML 文档的源代码。或包裹在 PRE 标签中。您的正则表达式被浏览器视为 html 标记。

于 2013-10-29T21:41:04.497 回答