채택완료

만만치 않아보이는데요

2022-01-27 (목) 16:19:00 1,928

preg_match_all로 데이터를 긁었습니다. 잘 나오는데요

total_cnt는 0부터~~~끝번은 정해지지 않았습니다.

김나영

   국어/영어

     학생끝

이혜주

   수학

     학생끝

등록 과목 갯수가 다르기 때문입니다. 그럼 질문드리겠습니다.

그래서 0~~n까지 긁은거를

학생끝이라는 값을 만나면

새로운 테이블(html)로 집어넣으려는데

어떻게 가능할까요? 

   if(strip_tags($match[0][$k]) == "학생끝")  exit;

이렇게 하니 김나영으로 빠져나와버려서요,,,

그러니까 학생끝을 만나면 빠져나와서 다시 새 테이블로

또 만나면 새 테이블로,,,,,이런 개념입니다.

Copy
<?
for($k=0; $k<$total_cnt; $k++){
   if(strip_tags($match[0][$k]) == "학생끝")  exit;
?>

<tr>

<td><input type="text" name="student_name[]" id="<?=$k?>" title="학생이름" value="<?=strip_tags($match[0][$k])?>"></td>

</tr>
<? }  ?>
|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트
2022-01-27 (목) 16:24:54

If 문에서 break 로 빠져나오고

n 이 지정되지 않았으면 for 가 아니라 while 문으로 돌리세요.

지금보니 그게 아니네요.ㅋ

학생끝이라는 문자열을 기준으로 전체를 explode 합니다.

그렇게해서 배열0 번에서 원하는 문자열을 빼는 함수를 만든 후에 그 함수를 0부터 count-2 까지 돌리면 되지 않을까요?

답변에 대한 댓글 1개

앞서 답변은 어찌어찌 해볼 수 있을려나 했는데...다시 주신 답변은 아주 막막합니다. ㅋㅋ
2022-01-27 (목) 16:47:44

파싱하려는 전체 문자열을 한번 올려 보세요. html이나 class까지를 포함한 전체 문자열이요.

전체 문자열을 보아야 어떻게 파싱해야 편할지 가닥이 나옵니다.

본인이 생각하기에 "이렇게 파싱해야 해" 라고 방향을 정해 놓고 그 일부분만 절취해서 질문을 하면

답변자도 대답하기가 난감해요.

답변에 대한 댓글 1개

전체문자열이 아니라 크롤링하려는 페이지 주소를 줘도 괜찮습니다.

답변을 작성하려면 로그인이 필요합니다.