我不知道我的代码到底出了什么问题。
问题:我从mysql获得结果,返回的变量之一需要通过preg_replace运行,preg_replace()在回显它时工作得很好,但是当我试图将该变量放入数组时,它并不反映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再生3弓技能在每次打击心态下可能有资格得到多达3每额外(但不适用于范围类型)
简单地回应如下: MP再生3弓技能在每次打击心态下可能有资格得到多达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;再次编辑:见答案的解决方案!
发布于 2015-10-22 16:03:44
感谢评论中的精彩人物,解决问题的方法就是简单地使用strip_tags() --我的朋友们--这是我成为一个白痴的一个很好的例子。代码现在如下:
$bl = array(
'skills' => array()
);
if ($result = $db->query($queryStmt)) {
while ($row = mysqli_fetch_assoc($result)) {
$newdesc = strip_tags($row['Desc']);
$sk = array(
'desc' => $newdesc
);
array_push($bl['skills'], $sk);
}
};
header('Content-type: application/json');
echo json_encode($bl, JSON_NUMERIC_CHECK);
$db = NULL;而且效果很好。我正在制作一个已经存在的函数,请阅读strip_tags()上的文档以获得更多信息。http://php.net/manual/es/function.strip-tags.php
https://stackoverflow.com/questions/33284902
复制相似问题