php 내용 추출 하는 방법(strpos)
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.2 |
안녕하세요.
라이믹스와는 관련이 없지만 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를 빼면될것도 같은데
제가 참고한 글은
입니다.
감사합니다.

톰캣
Lv. 11
시대의 흐름에 뒤떨어지지 않도록 아주 천천히지만 노력하고 있습니다.
댓글 2
$val 값은 json 형태인것으로 보이는데 굳이 특정 문자열을 찾을 필요 없이 json_decode 함수로 배열로 변환해서 사용하시면 됩니다.
https://3v4l.org/YITiA
데이터가 언급하신 형태로만 온다면 위 예제 참고하시면 되겠습니다. 만약 데이터 형태가 다르다면 위 print_r 처럼 데이터 구조를 출력해 본뒤 구조를 파악하신뒤 사용하시면 됩니다.
말씀주신 코드로 하니 한방에 해결되었습니다.
너무 감사드립니다.