【发布时间】:2015-10-23 00:04:40
【问题描述】:
我无法弄清楚我的代码到底出了什么问题。
问题:
我从 mysql 数据库中获取结果,返回的变量之一需要通过 preg_replace 运行,preg_replace() 在我回显时工作得很好,但是当我尝试将该变量放入数组时,它没有t 反映 preg_replace() 的变化。
$bl = array(
'skills' => array()
);
if ($result = $db->query($queryStmt)) {
while ($row = mysqli_fetch_assoc($result)) {
extract($row);
$newdesc = preg_replace("/\<[^>]+\)/","",$Desc);
$sk = array(
'desc' => $newdesc
);
array_push($bl['skills'], $sk);
}
};
header('Content-type: application/json');
echo json_encode($bl, JSON_NUMERIC_CHECK);
$db = NULL;
同样,如果我在数组代码之前回显 $newdesc 变量,它会正确显示,但是当数组在脚本末尾回显时,它不会。
编辑:
有人请求echo 响应,如果我回显 $newdesc 这个字符串:
MP Regeneration 3 Bow Skills used at every beat mind可能有资格获得最多3个(但不适用于射程类型)
简单地回显如下: MP Regeneration 3 Bow Skills used at every beat mind可能有资格获得最多3个(但不适用于射程类型)
代码现在反映了这一点:
$bl = array(
'skills' => array()
);
if ($result = $db->query($queryStmt)) {
while ($row = mysqli_fetch_assoc($result)) {
extract($row);
$newdesc = preg_replace("/\<[^>]+\)/","",$Desc);
echo $newdesc;
$sk = array(
'desc' => $newdesc
);
array_push($bl['skills'], $sk);
}
};
header('Content-type: application/json');
echo json_encode($bl, JSON_NUMERIC_CHECK);
$db = NULL;
再次编辑: 查看答案以获取解决方案!
【问题讨论】:
-
这段代码对我来说似乎不太正常。 if 和 else 都做同样的事情。您是否修剪了部分代码?您是否可能删除了导致错误的部分?
-
抱歉,数组中还有很多变量,为了清楚起见,我刚刚删除了它们。我编辑了我的问题以反映没有 if 语句的代码,错误仍然发生。
-
不用
extract()试试看。 -
另外,为什么不直接
strip_tags()? -
Re“如果我错了请纠正我”:你试过了吗?您是否阅读过文档中的示例?
标签: php