Extra Form
PHP PHP 7.2
CMS Rhymix 2.0

안녕하세요.

 

라이믹스와는 관련이 없지만 php 질문입니다.

 

$val 값은 아래와 같습니다.

{"부제목":[{"제목2":"내용2","제목3":"내용3","제목4":"내용4"}]}

 

제가 하고 싶은 것은 부제목에 있는 내용4를 추출하고싶습니다.

 

$startPosition = strpos($val, strstr($val, '제목4":"'));           //시작 쌍따옴표 위치
$lastPosition = strpos($val, strrchr($val, '"}]}'));          // 끝 쌍따옴표의 위치
$whdth = $lastPosition - $startPosition;
$fileName = substr($val, $ startPosition, $width);
echo $fileName;

 

온라인 검색을 통해서 이래저래 해보고있는데

500에러가 발생합니다.

 

내용 4를 추출하기위해서 

시작 부분

제목4":"

끝부분

"}]}

을 검색하려고하는데 특수문자가 포함되어서 그런지 쉽지 않습니다.

 

\를 붙이거나 " 를 '로 변경하는 방법이 있을 것 같은데

혹시 방법 아시는분이 계시면 도움좀 부탁드립니다.

 

아니면 제목4를 시작점으로 잡고 우측으로 3값을 빼고 좌측으로 4를 빼면될것도 같은데

 

제가 참고한 글은

https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040203&docId=110263646&qb=cGhwIHNyYyDrp4wg7LaU7Lac&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=gQSxSwoi5UlssbO9gJssss--129504&sid=egdqbrC-6E0AAD6fcrIAAAAV

입니다.

 

감사합니다.

  • profile

    $val 값은 json 형태인것으로 보이는데 굳이 특정 문자열을 찾을 필요 없이 json_decode 함수로 배열로 변환해서 사용하시면 됩니다.

    https://3v4l.org/YITiA
    데이터가 언급하신 형태로만 온다면 위 예제 참고하시면 되겠습니다. 만약 데이터 형태가 다르다면 위 print_r 처럼 데이터 구조를 출력해 본뒤 구조를 파악하신뒤 사용하시면 됩니다.

  • profile profile
    json 형태는 출력이 엄청 편하네요.
    말씀주신 코드로 하니 한방에 해결되었습니다.

    너무 감사드립니다.