как извлечь ссылки и заголовки с .html-страницы?

для моего веб-сайта я хотел бы добавить новую функциональность.

Я хотел бы, чтобы пользователь мог загрузить файл резервных копий закладок (из любого браузера, если это возможно), чтобы я мог загрузить его в свой профиль, и им не нужно вставлять все их вручную …

единственная часть, которую мне не хватает, чтобы сделать это, это часть извлечения заголовка и URL из загруженного файла. Может ли кто-нибудь дать понять, с чего начать или где читать?

используемая опция поиска и ( как извлечь данные из необработанного html-файла ), это самый смежный вопрос для моего, и он не говорит об этом.

Я действительно не против, если его использование jquery или php

Большое спасибо

Спасибо всем, я ПОЛУЧИЛ ЭТО!

окончательный код: это показывает назначенный якорный текст и href для всех ссылок в файле .html

$html = file_get_contents('bookmarks.html'); //Create a new DOM document $dom = new DOMDocument; //Parse the HTML. The @ is used to suppress any parsing errors //that will be thrown if the $html string isn't valid XHTML. @$dom->loadHTML($html); //Get all links. You could also use any other tag name here, //like 'img' or 'table', to extract other tags. $links = $dom->getElementsByTagName('a'); //Iterate over the extracted links and display their URLs foreach ($links as $link){ //Extract and show the "href" attribute. echo $link->nodeValue; echo $link->getAttribute('href'), '<br>'; } 

Опять же, большое спасибо.

Это, вероятно, достаточно:

 $dom = new DOMDocument; $dom->loadHTML($html); foreach ($dom->getElementsByTagName('a') as $node) { echo $node->nodeValue.': '.$node->getAttribute("href")."\n"; } 

Предполагая, что сохраненные ссылки находятся в html-файле, лучшим решением является, вероятно, использование синтаксического анализатора html, такого как PHP Simple HTML DOM Parser (никогда не пробовал сам). (Другой вариант – поиск с использованием базового поиска строк или регулярного выражения, и вы, вероятно, никогда не должны использовать regexp для разбора html).

После чтения html-файла с использованием анализатора его функции обнаруживают теги:

из учебника:

 // Find all links foreach($html->find('a') as $element) echo $element->href . '<br>'; 

Это пример, который вы можете использовать в своем случае:

 $content = file_get_contents('bookmarks.html'); 

Запустите это:

 <?php $content = '<html> <title>Random Website I am Crawling</title> <body> Click <a href="http://clicklink.com">here</a> for foobar Another site is http://foobar.com </body> </html>'; $regex = "((https?|ftp)\:\/\/)?"; // SCHEME $regex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?"; // User and Pass $regex .= "([a-z0-9-.]*)\.([az]{2,4})"; // Host or IP $regex .= "(\:[0-9]{2,5})?"; // Port $regex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?"; // Path $regex .= "(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?"; // GET Query $regex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?"; // Anchor $matches = array(); //create array $pattern = "/$regex/"; preg_match_all($pattern, $content, $matches); print_r(array_values(array_unique($matches[0]))); echo "<br><br>"; echo implode("<br>", array_values(array_unique($matches[0]))); 

Вывод:

 Array ( [0] => http://clicklink.com [1] => http://foobar.com ) 

http://clicklink.com

http://foobar.com

 $html = file_get_contents('your file path'); $dom = new DOMDocument; @$dom->loadHTML($html); $styles = $dom->getElementsByTagName('link'); $links = $dom->getElementsByTagName('a'); $scripts = $dom->getElementsByTagName('script'); foreach($styles as $style) { if($style->getAttribute('href')!="#") { echo $style->getAttribute('href'); echo'<br>'; } } foreach ($links as $link){ if($link->getAttribute('href')!="#") { echo $link->getAttribute('href'); echo'<br>'; } } foreach($scripts as $script) { echo $script->getAttribute('src'); echo'<br>'; }