코 낀거 같습니다. 채택완료
이러다 코끼리 될거 같아요ㅡㅡ
정규식 관련인데요 preg_match_all 부분이 고장나서 안되는거 같은데요
content는
Copy
<p> ~~ </p>
<p><a href=~~></a></p>
<p> ~~ </p>
<p> ~~ </p>
<table>
<tbody>
<tr>
<td></td>
<td>
<table><tbody><tr><td></td></tr></tbody></table>
</td>
이런 형식으로 <p>가 4개있고
아래 table tbody tr td 사이에 다시 table tbody tr td가 끼어 있는 형식입니다.
이쯤에서
print_r($content); 해보면 데이터는 나타나구요.
preg_match_all("|<p>번호:([0-9]+) ([0-9-]{10}) .*<a href=[^>]+>(.*)</a>.*<table>.*(<table>.*</table>.*)</tr></tbody></table>|U", $content, $match);
이 preg_match_all 코드 중에 어느 부분이 잘못되었는지
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) [4] => Array ( ) [5] => Array ( ) ) 이렇게 값이 아무것도 안나옵니다.
코좀 빼주세요 ㅜㅜ
답변 1개
채택된 답변
+20 포인트
답변에 대한 댓글 1개
sIr어드민
4년 전
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
이렇게 되어 있습니다.
$content = preg_replace($src, $targ, $content);
//print_r($content); exit;
preg_match_all("|<p>번호:([0-9]+) ([0-9-]{10}) .*<a href=[^>]+>(.*)</a>.*<table>.*(<table>.*</table>.*)</tr></tbody></table>|U", $content, $match);
for($i=0; $i<count($match[1]); $i++){
if(!trim($match[1][$i]) || !trim($match[2][$i]) || !trim($match[3][$i]) ) continue;
preg_match("@</table>(<p>.*</p>)?</td><td><p>([0-9\.,]+)</p>(<p>([0-9\.,]+)</p>)?(<p>합([0-9\.]+)</p>)?</td><td><p>([^<]+)</p>@U", $match[4][$i], $total);
$tot[$i] = $total[2]; $sendcost[$i] = $total[6]; $status[$i] = $total[7];