2010-03-11 4 views
1

나는 flickr API와 PHP로 놀고있다. Ajax를 통해 PHP에서 Javascript로 일부 정보를 전달하고 싶습니다. 나는 다음과 같은 코드를 가지고 :5.2에서 이스케이프 처리되는 PHP Json 인코딩

다음 예에서 JSON 문자열 결과
json_encode($pics); 

:

[{"id":"4363603591","title":"blue, white and red...another seattle view","date_faved":"1266379499"},{"id":"4004908219","title":"\u201cI just told you my dreams and you made me see that I could walk into the sun and I could still be me and now I can't deny nothing lasts forever.\u201d","date_faved":"1259987670"}] 

자바 스크립트로 인해 두 번째 항목에서 이스케이프 작은 따옴표 ("에, 그러나,이 문제가를 can not deny ").

나는이 따옴표를 제거하기 위해 옵션 매개 변수와 함수로 json_encode를 사용하려면,하지만 PHP 5.3에서만 사용할 수, 난 5.2 (나의 서버)를 실행하고 있습니다. Json에서 전체 배열을 실행하고 모든 것을 이스케이프 처리하는 빠른 방법이 있습니까? 이 작업을 수행 할 방법을 찾았지만 데이터를 생성 할 때 엔 인코딩을 처리하는 것처럼 보입니다. 데이터를 생성하는 사람이 아니기 때문에 할 수없는 작업입니다.

var photos = eval('(' + resptxt + ')'); 

답변

2

eval() 대신 JSON2을 사용 해본 적이 있습니까? 세부 사항 here.

+0

그게 효과가있어. 좋아 고마워! – NickAldwin

1

않는 str_replace ('\' ','\\ ''로 json_encode ($ 사진))

+0

흠,하지만 큰 따옴표는 어떨까요? 그것은 동일한 따옴표로 묶인 값을 모두 대체하기 때문에 replace 유형을 실행할 수 없습니다! – NickAldwin

+0

PHP에서 작동하지 않습니다 '\', '\\' '... php가 많은 작은 따옴표에 오류를 줄 것입니다 ...이 str_replace (" '", "\'", json_encode ($ invoices)); – Cleanshooter

+0

@NickAldwin은 strtr을 사용합니다. – OIS

0
:

는 내가 현재 아약스 요청 후 다음과 같은 자바 스크립트를 사용하고, 도움이된다면

배열을 거쳐 수동으로 조작하려면 (재귀 적) foreach를 수행해야합니다. str_replace는 할 수 있지만 addslashes는 잘 작동합니다 (그리고 addcslashes가 더 좋습니다).

+0

그건 내가 두려워했던 것입니다. (두려워하지는 않지만 더 빠른 방법이 있기를 바랄뿐입니다). – NickAldwin

관련 문제