저는 CodeIgniter의 json 응답에서 scaped 문자를 PhilSturgeon REST Server으로 제거하려고 애 쓰고 있습니다.CodeIgniter and RESTful : 반환 된 json에서 백 슬래시를 제거하는 방법?
모든 것이 정상적으로 작동하지만 문제는 응답과 함께 제공됩니다. json 형식으로 데이터를 가져 오기 위해 URL에 액세스 할 때 얻을 수 있지만 이스케이프 처리 된 문자를 사용하면 문제가 발생합니다.
예 :
http://localhost/revista_servidor/index.php/api/notas/nota/id/1
나에게 다음 응답을 제공합니다 :
[{ "ID": "1", "autor": "Prueba autor", "titulo": "Comprobaci ","subtitulo ":"하위 \ u00edtulo. ","foto1 ":"http : //link.a.foto/foto1 ","texto1 ":"Comprobaci \ u00f3n de t \ u00ed \ u00edtulo " \ r \ n ","pauta1 ":"1 ","texto2 ":"텍스트 2를 수정하십시오. \ r \ n ","foto2 ":"http : //link.a .foto/foto2 ","pauta2 ":"1 ","texto3 ":"텍스트 3을 압축하십시오. ","foto3 ":"http : //link.a.foto/foto3 ","pauta3 ": "1", "texto4": "텍스트와 일치 \ 4. ","texto5 ":"텍스트 5로 압축 ","texto6 ":"텍스트 6으로 압축 ","datosweb ":"http : //link.a.pagina.de.datos/","아델란 토 ":"Comprobaci \ u00f3n 델 texto 드 년 Adelante ","nrorevista ":"69 "}]
이 (이 예에서는 ó
)를 특별 문자 백 슬래시 \
추가 및 변경 URL을 탈출과 : \u00f3
.
stripslashes()
을 추가하려고했지만 작동하지 않았습니다. 개발자 도구에서 응답을 확인했으며 예상대로 제공됩니다. 콘텐츠 형식 : application/json.
어떻게 인코딩 문제를 해결할 수 있습니까? 또한 구성 파일을 점검 했으므로이 문제를 해결할 수있는 방법이 없습니다.
컨트롤러 : /application/controllers/api/notas.php
function nota_get() {
// ID verification.
if (!$this->get('id')) {
// NO ID.
$this->response(NULL, 400);
}
$nota = $this->Notas_model->get($this->get('id'));
if ($nota) {
stripcslashes($this->response($nota, 200));
}
else {
$this->response(NULL, 404);
}
}
모델 : /응용 프로그램
내가 아래에있는 내 코드입니다, 누군가가 올바른 방향으로 날 지점 수 있기를 바랍니다 /models/notas_model.php
function get($id = 0) {
$this->load->database();
if ($id) {
$query = $this->db->get_where('notas', array('id' => $id));
}
else {
$query = $this->db->get('notas');
}
return $query->result();
}
이 문제지만,이 데이터가 교류 될 경우 나도 몰라 클라이언트 측에서 javascript를 통해 중단되었습니다.
미리 감사드립니다.
자네 말이 맞아 나는')이 자바 스크립트를 통해 액세스 할 것이다, 그래서 jQuery를'$ 갔지를 (사용 전에 말했듯 이스케이프 문자가없는 콘솔에서 결과를 보았습니다. 고마워요 @ 보닉! – Ariel
이스케이프 된 URL에 JSON.parse()를 사용하면 백 슬래시가 제거되므로 PHP 코드에서 아무 것도 변경할 필요가 없습니다. 이것을보십시오 :'JSON.stringify (JSON.parse ('{ "path": "디렉토리 \/서브 디렉토리 \/filename.ext"}'))'. 이스케이프 처리 된 백 슬래시가없는 경로를 다시 얻을 수 있습니다. 그래서 JS를 사용하여 RESTful codeigniter 코드의 주어진 데이터를 문제없이 사용할 수 있습니다 :) – Narxx