get_meta_tags 함수의 기본 구문은 다음과 같습니다.
array get_meta_tags ( string $filename )
이 함수는 파일 경로 (또는 URL)를 사용하여 모든 파일을 구문 분석합니다. 상표. 결과는 어레이의 키가 메타 태그의 이름 또는 속성 속성이며 값은 해당 컨텐츠 속성입니다.
예를 들어 다음 HTML 예제를 고려하십시오.
<html>
<head>
<meta name="description" content="이것은 테스트 페이지입니다">
<meta name="keywords" content="PHP, HTML, meta">
<meta property="og:title" content="Open Graph Title">
</head>
<body>
<!-- 페이지 내용 -->
</body>
</html>
이 HTML 파일을 get_meta_tags 로 구문 분석 한 후 반환 된 배열은 다음과 같습니다.
array(
'description' => '이것은 테스트 페이지입니다',
'keywords' => 'PHP, HTML, meta',
'og:title' => 'Open Graph Title'
)
get_meta_tags 함수를 구문 분석 할 때 이름 과 속성 속성 만주의를 기울이고 HTTP-equiv 속성의 태그는 무시됩니다. HTML에있는 경우 , 태그는 get_meta_tags에 의해 구문 분석되지 않습니다.
http-equiv 속성에 대한 태그를 구문 분석 해야하는 경우 Domdocument 와 같은보다 강력한 HTML 파서를 사용하여 모든 태그와 그 내용.
$doc = new DOMDocument();
@$doc->loadHTMLFile('yourfile.html');
$metas = $doc->getElementsByTagName('meta');
foreach ($metas as $meta) {
$name = $meta->getAttribute('name');
$content = $meta->getAttribute('content');
echo "$name: $content\n";
}
이 방법은 http-equiv를 포함한 모든 것을 구문 분석 할 수 있습니다 상표.
URL이 통과되면 Get_meta_tags 함수는 때때로 특정 문자 인코딩 (예 : UTF-8 또는 GB2312)을 올바르게 구문 분석하지 못합니다. HTML 파일의 인코딩이 PHP의 기본 인코딩과 일치하지 않으면 구문 분석 오류가 발생할 수 있습니다.
먼저 HTML 컨텐츠를 MB_Convert_Encoding 함수를 통해 인코딩하는 올바른 문자로 변환 한 다음 get_meta_tags를 호출 할 수 있습니다.
$html = file_get_contents('yourfile.html');
$html = mb_convert_encoding($html, 'UTF-8', 'auto');
file_put_contents('tempfile.html', $html);
$metaTags = get_meta_tags('tempfile.html');
print_r($metaTags);
이렇게하면 구문 분석 할 때 HTML 컨텐츠가 올바르게 인코딩되도록 할 수 있습니다.
일부 웹 페이지 태그는 JavaScript를 통해 동적으로로드됩니다. get_meta_tags 함수는 HTML 파일의 정적 컨텐츠 만 읽고 JavaScript를 실행하지 않기 때문에 이러한 동적 내용을 구문 분석 할 수 없습니다.
동적으로 생성 된 HTML 컨텐츠의 경우 셀레늄 또는 인형극과 같은 브라우저 자동화 도구를 사용하여 브라우저 동작을 시뮬레이션하고 최종 렌더링 된 HTML을 얻는 것이 좋습니다. 이때 렌더링 된 HTML은 get_meta_tags를 사용하여 추출하고 구문 분석 할 수 있습니다.
HTML에서 태그 및 속성 이름은 대소 문자를 사용하지 않습니다. 그러나 get_meta_tags 함수에 의해 반환 된 배열에서 키는 일반적으로 소문자입니다. HTML에서 대문자를 사용하는 경우 , get_meta_tags는 여전히 설명 (소문자)으로 구문 분석합니다.
반환 된 메타 태그가 사례에 민감 해야하는 경우 수동으로 통합 형식으로 변환하거나 구문 분석 된 데이터에서 필요한 처리를 직접 수행 할 수 있습니다.
$metaTags = get_meta_tags('yourfile.html');
$metaTags = array_change_key_case($metaTags, CASE_LOWER);
들어오는 파일 경로가 잘못되었거나 파일 자체에 없으면 태그, get_meta_tags는 빈 배열을 반환합니다. 현재 HTML 파일 형식이 표준화되지 않았거나 파일 경로가 액세스 할 수 없기 때문일 수 있습니다.
파일 경로가 올바른지 확인하고 HTML 파일이 표준을 준수하는지 확인하십시오. 문제가 지속되면 파일에 올바른 UTF-8 인코딩 선언이 포함되어 있는지 확인하거나 오류 처리를 사용하여 문제를 포착하고 디버깅 할 수 있습니다.
$html = file_get_contents('yourfile.html');
if ($html === false) {
die('파일을 읽을 수 없습니다');
}
$metaTags = get_meta_tags('yourfile.html');
if (empty($metaTags)) {
echo "찾을 수 없습니다 meta 상표。\n";
}
관련 태그:
HTML