2013-08-14 1 views
2

을 탈출하지 슬래시 :JSON이 내 PHP/JSON 스크립트입니다

<?php 
header('Content-type: application/json; charset=utf-8'); 
header("access-control-allow-origin: *"); 

$link = mysql_pconnect("localhost", "test", "test") or die("Could not connect"); 
mysql_select_db("news") or die("Could not select database"); 

$arr = array(); 

$rs = mysql_query("SELECT * FROM stories"); 

while($obj = mysql_fetch_object($rs)) { 
$arr[] = $obj; 
} 
echo '{"success":true,"error":"","data":[{"schedule":'.json_encode ($arr,JSON_UNESCAPED_SLASHES).']}}'; 
*/ 
?> 

json으로 제대로 표시; 그러나 JSON_UNESCAPED_SLASHES 사용에도 불구하고 아포스트로피는 계속 표시됩니다 (예 :

테스트입니다!

때 : 테스트 중입니다!

어떻게하면 제대로 작동합니까?

+3

하지만 ... 그들은 – Dave

+0

를 이스케이프 할 필요가 없습니다 내 JSON이 꺼져 기반이 : http://radioplayer.bauerradio.com/schedule.php?callback= ? & name = Viking + FM – avenas8808

+0

그 파일에서'''를 검색하면 예상대로 이스케이프 처리되지 않은 아포스트로피를 찾습니다. 나는 또한 이스케이프 된'/'문자 ('\ /')를 발견했다. ('JSON_UNESCAPED_SLASHES'로) 그렇게하지 말라고했다. – Dave

답변

1
$arr = strip_slashes($arr); 

또는

$arr = str_replace("\\","", $arr); 
2

JSON_UNESCAPED_SLASHES을 제거하면 원하는 방식으로 작동합니다. 그렇지 않은 경우 JSON_HEX_APOS을 사용하여 유니 코드 인코딩을 사용해보십시오.

+5

답변에 대한 어느 정도의 확신을 가질 때까지는 아마도 주석이어야합니다. – Dave

관련 문제