포스트 메타 직렬화 배열에서 데이터를 추출하는 방법은 무엇입니까?


23

사용자 정의 메타 필드에 데이터를 배열로 저장하는 XML to WP decoder 스크립트를 찾았습니다. 정보를 추출하는 가장 좋은 방법은 무엇입니까?

예를 들어 "제조업체"필드를 "CANADA"로 표시하려면 어떻게해야합니까?

[_ttn_i_details] => Array ( [0] => a:5:{s:9:"engine_id";a:1:{i:0;s:9:"300000225";}s:15:"transmission_id";a:1:{i:0;s:6:"257691";}s:5:"plant";a:1:{i:0;s:23:"Oshawa, Ontario, Canada";}s:15:"Manufactured in";a:1:{i:0;s:6:"CANADA";}s:22:"Production Seq. Number";a:1:{i:0;s:6:"151411";}} )

위의 예제 코드는을 통해 생성되었습니다 print_r(get_post_custom($post->ID));.

아무리 작더라도 통찰력에 감사드립니다. :)


1
질문에 투표하려고한다면 적어도 왜 그런지 말할 정도로 어른이 되십시오. PHP를 배우려고 열심히 노력하고 있습니다. 이것은 대부분의 프로그래머에게는 기본적인 일이지만 디자인 배경에서 왔습니다.
m-torin

답변:


35

unserialize () 를 사용 하여 배열로 변환하십시오.

$mydata = 'a:5:{s:9:"engine_id";a:1:{i:0;s:9:"300000225";}s:15:"transmission_id";a:1:{i:0;s:6:"257691";}s:5:"plant";a:1:{i:0;s:23:"Oshawa, Ontario, Canada";}s:15:"Manufactured in";a:1:{i:0;s:6:"CANADA";}s:22:"Production Seq. Number";a:1:{i:0;s:6:"151411";}}';
$mydata = unserialize($mydata);
echo $mydata['Manufactured in'][0];

편집 -관련 생각-메타 데이터를 직렬화 할 때 염두에 두어야 할 사항은 염려되는 경우 쿼리에서 해당 데이터를 사용할 수있는 기능을 제한한다는 것입니다. 예를 들어, "캐나다에서 제조 된 모든 부품 표시"와 같은 쿼리를 작성하거나 엔진 ID별로 결과를 주문하는 것은 쉽지 않습니다. 데이터가 한 필드에 다른 많은 데이터와 함께 포함되어 있기 때문입니다.


@ M.Taylor-환영합니다. 직렬화 된 데이터 및 쿼리에 대해 추가 한 편집 내용을 확인하십시오.
Milo

데이터를 검색 할 수있는 기능을 잃어 버리는 것에 대해 큰 지적을합니다. 스크립트를 작성하지 않았다면 직렬화 된 배열에 저장하지 않는 방법을 조사해야합니다.
m-torin

@ M.Taylor 죄송합니다. 그래도 누군가가 도울 수 있다고 확신합니다.
Milo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.