2017-11-03 1 views
2

2 개의 동일한 문자열을 비교하는 데 문제가 있습니다. 첫 번째 문자열은 데이터베이스에서 검색되고 다른 문자열은 하드 코딩됩니다.php - 2 길이가 다른 동일한 문자열

문자열은 { "name":"John", "age":30, "car":null }입니다.

이 코드를 처음 실행했으며 데이터베이스 문자열의 길이는 79 자이고 하드 코딩 된 문자열의 길이는 39 자입니다. 이 bin2hex()를 사용하도록 제안 된 검색 및 내가 " 문자로 좁혀 한 것을 사용하여 일부 후

echo '<pre>';var_dump($json_data);echo '</pre>'; 
echo '<pre>';var_dump('{ "name":"John", "age":30, "car":null }');echo '</pre>'; 

.

"하여 데이터베이스 값을 교체하고 다음 코드를 출력 하드 코딩 된 값

베이스 값 2671756f743b22 및 실행.

echo bin2hex($json_data)."<br>"; 
echo bin2hex('"')."<br>"; 

내가 다른 코드를하고있을 것입니다 비교를 기반으로 strcmp()를 사용하여 비교하는 두 값을 얻을 수있는 올바른 방법은 무엇입니까.

+0

var'$ json_data '란 무엇입니까? 문자열 또는 JSON 객체가 있습니까? – panther

+0

bin2hex 기능으로 무엇을하려고하는지 명확하지 않습니다. 또한 쿼리를 수행하는 코드와 데이터 저장 방법을 표시하지 않습니다. – Warrior

+1

'2671756f743b'은'"', 인용 문자의 html 엔티티입니다. [html_entity_decode()] (http://php.net/manual/en/function.html-entity-decode.php)는 그것을 실제 인용 문자 –

답변

1

@ Mark Baker 덕분에 html_entity_decode() 데이터베이스 값을 얻었으므로 이제는 두 값이 일치합니다.

관련 문제