HTML로 작성된 뉴스 항목을 짧은 페이지에서 볼 수 있어야합니다. 확실히 substr
과 같은 단순한 태그를 사용할 수 없기 때문에 태그가 닫혀 있지 않거나 태그 절반이 남을 수 있습니다. 이다PHP에서 HTML의 발췌 부분 얻기
쉽게 :
- 일반 텍스트를보고하고 HTML에서 시작을 복용하는
- 의 조각을 (이 항상 볼 것이다 컷오프에서 어떤 닫히지 않은 태그를 닫는 괜찮은로 HTML 변환 OK?)
선택한 솔루션을 구현하려면 어떻게해야합니까?
HTML로 작성된 뉴스 항목을 짧은 페이지에서 볼 수 있어야합니다. 확실히 substr
과 같은 단순한 태그를 사용할 수 없기 때문에 태그가 닫혀 있지 않거나 태그 절반이 남을 수 있습니다. 이다PHP에서 HTML의 발췌 부분 얻기
쉽게 :
선택한 솔루션을 구현하려면 어떻게해야합니까?
가장 간단한 방법은 자르기 전에 항목 텍스트에서 모든 HTML을 strip_tags()
으로 제거하는 것입니다.
자동 생성 된 발췌문에 이것을 사용하십시오. 그것은 최고가 아니지만, 뉴스 포스터에 자신의 발췌 부분을 나타내는 특별한 마크 업을 제공 한 이후로는 괜찮습니다. –
원래 뉴스 항목의 HTML 구조를 유지하는 것이 중요한 경우 두 번째 옵션을 사용합니다.
간단히 구현하려면 Tidy을 통해 조각을 실행하여 닫히지 않은 태그를 닫는 것입니다. 특히 tidy::cleanRepair 방법을 참조하십시오.
데이터를 XML로 구문 분석 한 다음 "순수한"텍스트 노드 만자를 수 있습니다.
참고 :이 솔루션은 입력을 유효한 XML로하고 항상 동일한 구조로 유지해야합니다.
안녕하세요 당신이 찾고있는 것이 웹 사이트 스크래핑이라고합니다. 다음은 웹 사이트를 긁을 수있는 방법입니다. 는 DOM 파서 여기 PHP Simple HTML DOM Parser
를 다운로드 그리고 마지막으로 여기에 당신이 절단 말없이 슬래시닷 (Slashdot)
// Create DOM from URL
$html = file_get_html('http://slashdot.org/');
// Find all article blocks
foreach($html->find('div.article') as $article) {
$item['title'] = $article->find('div.title', 0)->plaintext;
$item['intro'] = $article->find('div.intro', 0)->plaintext;
$item['details'] = $article->find('div.details', 0)->plaintext;
$articles[] = $item;
}
print_r($articles);
이 상황에서는 이것을 사용하지 않지만 그럼에도 불구하고 도움이됩니다. –
이 발췌 첫 번째 단락 아래로 긁어 및 옵션 흔적을 추가 할 수있는 방법 코드가 라이브러리 PHP 간단한 HTML을 사용합니다.
$ 발췌 = 자기 :: excerpt_paragraph ($ html로, 180)
/**
* excerpt first paragraph from html content
*
**/
public static function excerpt_paragraph($html, $max_char = 100, $trail='...')
{
// temp var to capture the p tag(s)
$matches= array();
if (preg_match('/<p>[^>]+<\/p>/', $html, $matches))
{
// found <p></p>
$p = strip_tags($matches[0]);
} else {
$p = strip_tags($html);
}
//shorten without cutting words
$p = self::short_str($p, $max_char);
// remove trailing comma, full stop, colon, semicolon, 'a', 'A', space
$p = rtrim($p, ',.;: aA');
// return nothing if just spaces or too short
if (ctype_space($p) || $p=='' || strlen($p)<10) { return ''; }
return '<p>'.$p.$trail.'</p>';
}
//
/**
* shorten string but not cut words
*
**/
public static function short_str($str, $len, $cut = false)
{
if (strlen($str) <= $len) { return $str; }
$string = ($cut ? substr($str, 0, $len) : substr($str, 0, strrpos(substr($str, 0, $len), ' ')));
return $string;
}
//
세 번째 방법은 (HTTP를 [태그를 돌봐있는 DOMDocument와 예]를 들어, HTML을 구문 분석하는 것입니다 : // www.overflow.com/a/29323396/367456). – hakre