Php Jquery:JSON更改路径的字符串
我试图从我的数据库中获取图像路径列表,并借助Jquery和Json triying将其添加到我的站点中。但我不知道为什么在php中使用json_encode`对字符串进行编码后,它会改变它的路径,并向我显示Php Jquery:JSON更改路径的字符串,php,jquery,string,json,parsing,Php,Jquery,String,Json,Parsing,我试图从我的数据库中获取图像路径列表,并借助Jquery和Json triying将其添加到我的站点中。但我不知道为什么在php中使用json_encode`对字符串进行编码后,它会改变它的路径,并向我显示 [{"0":"user\/photogallery\/images\/members\/2\/2_1.jpg","src":"user\/photogallery\/images\/members\/2\/2_1.jpg"},{"0":"user\/photogallery\/images\
[{"0":"user\/photogallery\/images\/members\/2\/2_1.jpg","src":"user\/photogallery\/images\/members\/2\/2_1.jpg"},{"0":"user\/photogallery\/images\/members\/2\/2_2.jpg","src":"user\/photogallery\/images\/members\/2\/2_2.jpg"}]
我只需要user/photogallery/images/members/2/2_2.jpg
部件就可以创建新的
组件
这里是我的php代码和脚本
$member_id = $GET['member_id'];
$files = find_all_photos($member_id);
$encoded = json_encode($files);
echo $encoded;
unset($encoded);
function find_all_photos($id)
{
db_connect();
$query = sprintf("SELECT src FROM photo_album_list WHERE user_id = '%s'",
mysql_real_escape_string($id));
$result = mysql_query($query);
$result = db_result_to_array($result);
return $result;
}
function db_result_to_array($result)
{
$res_array = array();
for ($count=0; $row = mysql_fetch_array($result); $count++)
{
$res_array[$count] = $row;
}
return $res_array;
}
和脚本
$.get('photostack.php', {member_id:2} , function(data) {
console.log(data);
var items_count = data.length;
for(var i = 0; i < items_count; ++i){
var item_source = data[i];
var cnt = 0;
$('<img />').load(function(){
var $image = $(this);
++cnt;
resizeCenterImage($image);
$ps_container.append($image);
var r = Math.floor(Math.random()*41)-20;
if(cnt < items_count){
$image.css({
'-moz-transform' :'rotate('+r+'deg)',
'-webkit-transform' :'rotate('+r+'deg)',
'transform' :'rotate('+r+'deg)'
});
}
if(cnt == items_count){
$loading.remove();
$ps_container.show();
$ps_close.show();
$ps_overlay.show();
}
}).attr('src',item_source);
}
},'json');
$.get('photostack.php',{member_id:2},函数(数据){
控制台日志(数据);
var items_count=data.length;
对于(变量i=0;i $(“听起来你很担心在路径中的斜杠之前添加反斜杠。完全同意这很奇怪(没有必要在JSON字符串中“转义”斜杠),但在大多数符号中,转义一个不需要转义的字符是无害的,如果该字符没有特殊的转义含义。(也就是说,逃避/
是无害的,即使它不需要它,但是逃避n
显然不是无害的,即使它不是这个意思,因为\n
意味着什么)
在我看来,对如何处理无效转义没有任何说明,但允许它们(忽略不必要的反斜杠),所以…(Crockford是JSON的发明者。)转义的反斜杠可能以这种方式存储在数据库中,因此您的JSON字符串只是逐字提取。如果要删除它们,您需要先处理从数据库返回的字符串,然后再返回或JSON_encode()比PHJQuery问题要多得多的PHP问题。我已经添加了PHP标签,你可以考虑删除jQuery。你是从服务器端得到它的吗?看看你的安慰可能的副本的回答是是重复的问题,但我也有一个问题。在我的路径中,它也创造了像“0”这样的东西。:“user\/photogallery\/images\/members\/2\/2\/u 1.jpg”,“src:“user\/photogallery\/images\/members\/2\/2\/u 1.jpg”为什么不仅是src?什么是0?它也重复。重复的原因可能是mysql\u fetch\u array()
的结果被定义为mysql\u两者(默认值)。From-“使用mysql\u两者(默认值),您将得到一个同时具有关联索引和数字索引的数组。“