php로 특정 단어를 차단하는 유해사이트 차단 페이지를 만들고 있는데

조회수 791회

안녕하세요. 제가 만드는 홈페이지 내에 유해사이트 차단 페이지를 만드려고 합니다. 현재 파싱은 스누피 클래스를 활용하려고 하는데,

/스누피 시작/ $snoopy = new snoopy;

/파싱/ $url = "http://www.naver.com"; $snoopy->fetch($url);

위와 같이 웹페이지를 읽어오고, 정규표현식을 사용하여 특정 문자열이 있으면 웹사이트 차단을 알리는 페이지를 불러오게 하려고 합니다.

근데 이와 같은 방법을 사용하면 url로 읽어들인 페이지만(위 코드의 경우 네이버 메인 페이지) 검사가 될 것 같은데 불러온 사이트에서 다른 페이지로 넘어갈 때에도(기사 링크나 다른 페이지로 전환될 때) 특정 문자열을 검사할 수 있는 방법은 없을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 억지를 부려야 하지요.

    1. 사이트를 파싱한 다음에 쭉 읽어보면서 차단할 단어가 있는지 보잖아요? 그 단계에서, 사이트 내 존재하는 모든 a 태그의 href 속성을 이런 식으로 고쳐줍니다.

    $new_href = '/parse_and_block?url='.urlencode($href);
    

    2. 작업 중인 소스가 /parse_and_block 라우트를 지원하도록 합니다. 해당 라우트는 GET 변수 중 url에 해당하는 값을 불러와 urldecode()한 다음, 그 주소에 대해 CURL을 실행해 내용을 파싱하고, 위의 1단계를 되풀이합니다.

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)