특정 문구를 찾아서 추출 하는방법이 필요합니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
특정 문구를 찾아서 추출 하는방법이 필요합니다.

QA

특정 문구를 찾아서 추출 하는방법이 필요합니다.

본문

몇시간 삽질을 해도 안되서 질문을 드립니다. ㅠㅠ

 

write_update.head.skin 에서 처리를 해주는데요.

 

wr_content 를 불러내면 html 페이지 안에 이런 문구가 있습니다.

 

<li><span class="stock">재고</span>32개</li>

 

여기서 <li><span class="stock">재고</span> 문구를 찾아서 </il> 사이의 문구를 추출해서

 

wr_1 에 넣어 주려고 하는데요.

 

// $wr_content 변수에 로드될 HTML (예시)
$wr_content = '<li><span class="stock">재고</span>32개</li>';

// 정규식을 사용하여 텍스트 추출
preg_match('/<li><span class="stock">재고<\/span>(.*?)<\/li>/', $wr_content, $matches);

// 추출한 텍스트를 wr_1 변수에 저장
$wr_1 = $matches[1];

 

이렇게 해주면 wr_1에 내용은 잘들어가는데 본문 내용도 32개 만 남습니다. (테스트로 강제로 값을 넣어 줬습니다 )

 

여기서 

 

// 정규식을 사용하여 텍스트 추출
preg_match('/<li><span class="stock">재고<\/span>(.*?)<\/li>/', $wr_content, $matches);

// 추출한 텍스트를 wr_1 변수에 저장
$wr_1 = $matches[1];

 

이렇게만 해주면 아무런 변화가 없어요..

 

제가 뭘 잘못하고 있는지 모르겠습니다..ㅠㅠ

 

wr_content 에 여러가지 내용이 있는데 저 문구를 찾아야 하는 부분인데 못찾고 있어서 그런걸까요?

 

참고로 //$wr_content = str_replace('초과수당', '', $wr_content);

이거는 잘되는데 preg_match는 딱 지정된 문구만 있어야 작동 하는건가요?

이 질문에 댓글 쓰기 :

답변 2

다음 코드는


<?php
// $wr_content 변수에 로드될 HTML (예시)
$wr_content = '<li><span class="stock">재고</span>32개</li>';
// 정규식을 사용하여 텍스트 추출
preg_match('/<li><span class="stock">재고<\/span>(.*?)<\/li>/', $wr_content, $matches);
// 추출한 텍스트를 wr_1 변수에 저장
$wr_1 = $matches[1];

 

다음처럼 각각 기대하는 올바른 값이 담깁니다.


// $wr_content : <li><span class="stock">재고</span>32개</li>
// $wr_1 : 32개

 

문제가 있다면 $wr_content 변수가 다른 어느곳에서 조작되고 있는지 확인이 필요할것 같습니다.

 

아무런 변화가 없는 경우는 정규식에 의해 파싱될 텍스트 규칙이

초기 $wr_content 변수에 없는 경우가 있을것 같습니다.

지금 문제가 wr_content는 원래대로 html 이 담긴대로 입력이 되어야 하고
저 wr_content 안에 저 문구가 있는거거든요. 저 문구만 있는게 아니고 여러 내용이 들어 있는데 저문구만 찾아서 wr_1 에 업데이트 됐으면 좋겠습니다.
$wr_content = '<li><span class="stock">재고</span>32개</li>';라는 값을 직접 입력 하는게 아니거든요... 제가 뭔가 잘못 이해 하고 있는걸까요?

이해된 사항이 맞고
예시 코드는 잘못되지 않은 올바른 코드이며
문제가 있다면 예시 코드가 아닌 다른부분에 있을 가능성이 있습니다.

$wr_content 에 <p>재고 32개</p> 처럼
미리 정의된 정규식에 해당하지 않는 문자열이 담겨있다면 예시 코드는 동작하지 않을것이고

별개로 $wr_content 가 넘어온값 그대로 저장되지 않는다면
다른 어딘가에서 $wr_content 가 조작되고 있을 가능성이 있습니다.

아무리 확인해도 해당 내용이 웹에디터 안에 들어가 있습니다... 그리고 $wr_content = str_replace('재고', '', $wr_content); 이 명령어는 확실히 수행이 됩니다... 재고 라는 글자가 지워져요..정말 이해가 안되네요..ㅠㅠ

아무것도 안하고 본문에 <li><span class="stock">재고</span>32개</li> 만넣고 write_update.head.skin에다가 $wr_1 = $wr_content; 하니까 wr_1 에 <li><span class="stock">재고</span>32개</li> 이게 들어가 있네요. wr_content 값이 문제가 있는거 같지는 않은데 왜 이러는건지..감이 안오네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 76
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT