간단한 HTML DOM의 드루팔 호스팅

간단한 HTML DOM 파서는 나에게 일어난 가장 좋은 일 중 하나입니다. 내가 스크랩 한 텍스트에서 값을 가져 오기 위해 정규 표현식과으로, preg_match_all 기능을 사용하는 데 사용되는 일이, 그들이 그렇게 좋지 않았다 기억한다. 나는이 HTML DOM 파서를 발견 이후로는 데이터를 가져 오는 및 HTML 페이지에서 값을 추출에 올 때, 인생이 너무 쉽게하고있다.

이 스크립트를 사용하는 동안 내 초기 일 동안, 나는 시간이 꽤 많이 혼란스러워했다. 파서는 너무 많은 기능을 제공하고 당신이 파서가하고 싶은 것 거의 모든 것을 할 수 있다는 사실은 정말 대단합니다. 유일한 문제는 그들 각각에 대한 다수의 서로 다른 매개 변수와 함께 다양한 기능을 호출 구문 및 방법을 기억하는 것입니다.

호스팅

나는 당신 모두를 위해 유용하게 사용할 수있는 I 수시로 사용하는 코드의 목록을했습니다. 같은위한 기성품 PHP 코드를 간단한 HTML DOM 파서의 사용을 이해하고 얻기 위해 더 읽어보십시오.

구조화 된 데이터를 다운로드하고 저장

데이터는 주로 세 가지 다른 소스에서 얻을 수 있습니다. URL, 정적 파일 또는 HTML 문자열. 세 가지 다른 대안에서 DOM을 만들려면 다음 코드를 사용합니다.

자신의 태그 이름을 기반으로 HTML 요소를 찾기

당신은 각각의 모든 하이퍼 링크를 웹 페이지에서 각각의 모든 이미지를 찾거나 말하고 싶었다 가정하자. 우리는 개체에서이 정보를 추출하는 "찾기"기능을 사용하는 것입니다. 여기에 간단한 HTML DOM 파서를 사용하여 수행하는 방법은 다음과 같습니다

요소에서 속성 값을 추출

당신이 웹 페이지에있는 모든 입력 필드의 이름을 취득한다고 가정,의는, 예를 들어 말할 수 있습니다 nimishprabhu.com/chrome-extension-hello-world-example.html. 당신이 웹 페이지를 볼 경우 지금 당신은 입력 필드가있는 페이지에 코멘트 양식이 있음을 알 수 있습니다. 주석 상자는 텍스트 영역 요소가 아닌 입력 요소 참고, 그래서 그것을 감지되지 않습니다 바랍니다. 하지만 코드를 사용할 수 있습니다 가시뿐만 아니라 숨긴 필드의 나머지 부분을 감지 :

그 속성의 값을 기준으로 필터링 요소

개발자가 페이지를 디자인 할 때, 그는 고유하게 식별하고 웹 페이지의 정보를 분류하는 다양한 속성을 사용합니다. 파서 차이를 시각화 할 수 때문에 인적 아니라, 데이터의 정확한 세트를 획득하기 위하여 그것의 출력을 이들 속성을 감지하고 필터링 할 수있다. 우리가 더 나은 이해를위한 실제적인 예를 들어 보자. 당신은이 페이지를 참조하십시오. https://www.phpbb.com/community/viewtopic.php?f=46t=543171 당신은 페이지 헤더, 내용과 바닥 글로 나누어 볼 수 있습니다. 지금도 컨텐츠 게시물로 나누어 더 하위입니다. 이 페이지는 1 게시물을 가지고 있지만 나는 그것이 하이퍼 링크의 꽤 많이 들어 있으므로이 옵션을 선택하기로 결정했다. 이제 당신은 단지 게시물에 하이퍼 링크가 아닌 전체 페이지를 추출하고 싶었 가정합니다. 다음과 같이 접근해야한다 :

링크 만 호스팅 간단한 HTML DOM의 드루팔

웹 페이지의 소스를 확인합니다. 하이퍼 링크는 패턴의 어떤 종류를 따르고 있습니다 여부를 알아보십시오. 만약 당신이 자세히 본다면 그들 모두 클래스 = "POSTLINK"가 있음을 발견 할 것이다. 이것은 그들에게, 케이크 한 조각을 추출 할 것이다. 속성 값을 기준으로 HTML 요소를 필터링하는 방법을 보려면 아래의 코드를 읽어보십시오.

클래스와 ID가 각각 속성을 필터링, 당신이 "."를 사용할 수 있습니다와 "#"접두사 여기서 주목할만한 가치가있다. 당신은 필터 등을 사용하는 경우 그래서 위의 코드는 변경없이 작동합니다 :

패턴 매칭 요소의 속성을 필터링하면서

우리가 포스트에서 모든 링크를 추출하는 위의 예를 생각해 보자. 당신이 사회에서, 서브 포럼의 링크를 찾을하고 싶은 말은. 당신이 그들 모두를 통지하는 경우 www.phpbb.com/community/viewforum.php로 시작합니다. 그럼 www.phpbb.com/community/viewforum.php로 시작하는 링크 만 가져 오기 위해 필터 "로 시작"를 사용하여 하이퍼 링크를 필터링 할 수

마찬가지로, 다음 다음과 같이 필터를 "포함"을 사용하여 필터링 할 수 있습니다 phpbb.com 포함 된 모든 링크를 찾으려면 말 :

당신은 속성의 값의 끝 부분에 대한 확신합니다. 의는 예를 들어, 가정 해 봅시다 당신은 많은 DIV 요소를 포함하는 웹 페이지를 폐기된다. ID를 가지고이 DIV 요소는 같은 속성 :

여기에 내용

여기에 내용

등등.
그런 다음을 사용하여 같은 DIV 요소를 찾을 수 있습니다 다음과 같이 필터 "로 끝"

/ 추가 요소의 속성 변경

의 당신이 특정 요소의 속성 값을 변경하려면 가정 해 봅시다. 의 경우 예를 들어, 모든 하이퍼 링크 클래스 = topiclink에 클래스 = POSTLINK을 가진 변경을 원한다면, 다음과 같이 수행 할 수 있습니다 :

파싱 ​​된 데이터로부터 n 번째 요소를 찾기

소자의 번호는 0에서 시작하여 1 이와 같이 첫 번째 요소는 0 번째 위치에 해당한다하지 않습니다. 의 당신이 웹 페이지에 클래스 POSTLINK와 3 링크의 하이퍼 링크를 추출 할 것을 가정 해 보자, 다음과 같은 방법을 사용할 수 있습니다 :

태그의 내부 내용을 조작

콘텐츠와 같은 ID로 사업부의 내부 내용을 삭제하려면 다음과 같이 수행 할 수 있습니다 :

기존 콘텐츠에 텍스트를 추가하려면 다음과 같이 수행 할 수 있습니다 :

기존의 콘텐츠에 텍스트를 씁니다 중위, 다음과 같은 코드를 사용할 수 있습니다 :

새로운 요소 내부 요소의 내용을 랩

당신이 ID 함량이 기존 사업부가, 이제 래퍼 사업부를 만들어 래퍼 DIV의 콘텐츠 사업부를 동봉 할 한 말. 여기 당신이 그것을 할 방법은 다음과 같습니다

PHP는 간단한 HTML DOM 파서를 사용하는 동안 메모리 누수 문제를 처리

마지막으로 확실히 적어도, 메모리 누수 문제를 처리. 당신은 광범위하게 사용하면 메모리 소모 오류가 발생합니다이 스크립트를 사용하여 시작 스크립트 뭐가 잘못 됐는지 궁금 계속됩니다되면. 문제는 메모리 누수 문제를 처리하지 때문일 수 있습니다. 나는 메모리 누수의 경우, 또는이 문제가 발생하지만 방법이 필요하지 않은 것 일단 당신이 $ html로 변수를 생성하고 해제 취소하는 것을 잊지 마세요이 문제를 처리 .TO 여기에 대해 꽤 읽을 수있는 일에 대해 구체적으로 이야기하지 않습니다 더욱이.

또한 StackOverFlow.com에서 플래시 천둥에 의해 생성 된 멋진 기능을 사용할 수 있습니다, 그것의 사용 예와 함께 여기를 확인하십시오.

난 당신이 PHP 간단한 HTML DOM 파서를 사용하여 시작하는 이러한 예는 충분하다 생각한다. 당신은 어떤 의심이나 쿼리는 아래의 주석 양식을 사용합니다. 내가 요청 및 쿼리에 따라 더 많은 예제를 추가합니다. 이 문서가 효율적으로 데이터를 긁어 도움이되기를 바랍니다.

이 항목은 PHP에 게시했습니다.

네 생각에 “ PHP는 간단한 HTML DOM 파서의 톱 10 베스트 사용 예 ”

안녕. HTML을 확인하시기 바랍니다

100 탄알 (성숙한 리더) 민트 [46,373] MAXIMUM_ORDER_TEXT 근처 # 100
$ 4.99

이로부터, 나는 "민트 근처 (100 개) 글 머리 기호 (성숙한 독자) # 100"즉 제목 만 스크랩 할
하지만 난 점점 오전 모두 O / p는 문서라도입니다
[PRODUCT_TITLE] => 배열
(
[0] => 100 탄알 (성숙한 리더) 민트 근처 # 30
[10]
MAXIMUM_ORDER_TEXT
[1] => $ 1.99
[2] => 100 탄알 (성숙한 리더) 민트 근처 # 100
[46373]
MAXIMUM_ORDER_TEXT
[3] => $ 4.99
[4] => 100 탄알 (성숙한 리더) 민트 근처 # 32
[12]
MAXIMUM_ORDER_TEXT
[5] => $ 1.99
[6] => 100 탄알 (성숙한 리더) 민트 근처 # 34
[14]
MAXIMUM_ORDER_TEXT
[7] => $ 1.99
[8] => 민트 근처 은하 (2,014 원샷) # 1 (변형)의 100 주년 기념 보호자

나에게 무엇을 알려 주시기 바랍니다.

패턴을 관찰하고 이에 따라 얻어진 문자열을 분할.

$ 제목 = ( '['$의 PRODUCT_TITLE)를 폭발;
또는
$ 타이틀 = ( '민트 근처'$의 PRODUCT_TITLE)를 폭발;

이어서 최종 출력을 얻었다 [0] 표제 $를 사용한다.

이 도움이 믿어.

감사 문안 인사

이 비디오를 시청!

관련 기사

Geolitecity 날엔의 드루팔 호스팅나는 작업 사이트 메신저에 지오 IP를 추가하는 것을 시도하고있다; 내가 컨텍스트 지리적 IP와 지오 IP 모듈을 사용하고, 국가에 따라 컨텍스트를 만들 수 있어요있다. 그러나 나는에 따라 콘텐츠를 표시 할 필요가 ...
왜 드루팔 호스팅을 통해 워드 프레스를 사용당신은 당신이 전문가 또는 개인적인 이유로 여부, 블로그를 시작하고자하는 지점에 있다면 2015년 8월 6일 톰 물병에 의해 게시, 당신의 최선의 선택은 자체 호스팅 웹 사이트입니다 ...
니라브 메타 드루팔 호스팅우리가 끼어 작업하는 제품 관리자 중 하나가 될 때 두 주 전에, 내가 이베이에서 끝났다 "나는 지금부터 삼년 경우 정말 슬픈 될 것입니다, 당신은 여전히 ​​드루팔에 갇혀있다." 기업으로서, 우리가해야합니까 ...
간단한 갤러리 모듈 드루팔 호스팅이 모듈은 인기 Juicebox HTML5 반응 갤러리 라이브러리와 드루팔 사이의 통합을 제공합니다. Juicebox는 여러 가지 방법으로 Simpleviewer의 후계자이며 강력한을 제공합니다 ...
드루팔은 SSL을 사용하여 호스팅HTTPS는 HTTP 요청과 응답을 암호화하는 프로토콜입니다. 이 경우 누군가가 당신의 컴퓨터와 당신이 요청하는 서버 사이의 네트워크를 손상 할 수 있었다 보장 ...