Php 剥离数组中每个值中的斜杠
我有一个从SQL调用中获取的值数组,但当我尝试将其放入网页中的表中时,会出现以下错误:Php 剥离数组中每个值中的斜杠,php,arrays,sql-server,Php,Arrays,Sql Server,我有一个从SQL调用中获取的值数组,但当我尝试将其放入网页中的表中时,会出现以下错误: JSON.parse: bad escaped character at line 1 column 657 of the JSON data 我意识到在数据中,其中一行有数据:INNO BROWN THOMAS TV的 这是由于转义字符导致的错误,大的结果集作为数组返回,我需要php中的某种循环来删除这些斜杠并停止错误。最好的方法是什么?我已经阅读了PHP手册中的addslashes和stripslash
JSON.parse: bad escaped character at line 1 column 657 of the JSON data
我意识到在数据中,其中一行有数据:INNO BROWN THOMAS TV的
这是由于转义字符导致的错误,大的结果集作为数组返回,我需要php中的某种循环来删除这些斜杠并停止错误。最好的方法是什么?我已经阅读了PHP手册中的addslashes
和stripslashes
,并尝试在数组中循环以删除斜杠,但没有任何效果
任何正确方向的帮助或指示都将不胜感激,谢谢
$prodSQL = new prodEnqSQL;
$results = $prodSQL->getProdData($prodName, $prodType, $prodCode);
function stripslashes_array($results){
global $results;
if(is_array($results)){
foreach ($results as $key=>$value){
$value[$key] = stripslashes_array($value);
}
}else{
return stripslashes($results);
}
}
希望这对你有用
foreach ($your_array as $key=>$value) {
$your_array[$key] = stripslashes($value);
}
或者对于多个级别的阵列,请使用以下命令:
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);
print_r($array);
如果是sql server 2016,查询时可以使用sql server的字符串_ESCAPE,如下所示:
select string_escape(yourcolumn, 'json') from yourtable
如果select replace(yourcolumn,'\','\\') from yourtable
为什么是sql server?@KannanKandasamy,因为我得到的结果来自sql server,我正在使用哪个版本的sql server/2012,有没有办法通过sql而不是php来实现这一点?sql Server 2016中有String_escape函数,它将自动提供此数据,否则我们可能需要使用replace。我正在获取
stripslashes()希望参数1是字符串,数组给定
谢谢,编码愉快