Парсер php file get contents
Помогите сделать парсер, что-бы вставлять ссылку в поле и при нажатии на кнопку он парсил:
вот код: <?PHP $text = file_get_contents( 'сссылка' ); preg_match( '/<h1>(.*?)<\\/h1>/is' , $text , $title ); echo $title[1]; ?> Как правильно всё это реализовать? |
preg_match( '/<h1>(.+)<\/h1>/is', $text, $title ); Если кодировка UTF, то нужен модификатор u. |
laimas, нужно переделать скрипт, чтобы вставить ссылку в input и при нажатии только начинало парсить
|
Какую ссылку, в какой input и зачем?
|
Вставив ссылку в инпут и при нажатии на кнопку из этой ссылки парсить то что мне нужно.
|
Цитата:
Если речь о вставке в поле/поля формы при выводе страницы пользователю, то берите эти ссылки (где они там у вас неизвестно) подставляй их в вывод кода формы. Щелкайте, получайте ссылку, разбирайте. Но если речь об одной ссылке, зачем же ее отправлять клиенту, чтобы получить вновь? Ваш вопрос, это некая прострация, не понятно что, кто и откуда. |
<form action="t.php" method="post"> <input type="text" name="link" value=""> <input type="submit" name="sub" value="button"> </form> <?PHP if (isset($_POST['sub']) ) { $text = file_get_contents( $_POST['link'] ); preg_match( '/<h2>(.*?)<\/h2>/is' , $text , $title ); echo $title[1]; } ?> |
Ну и какие проблемы?
|
я это имел веду...
|
Вот есть ссылка к примеру тык..
Нужно из этой страници парсить автора, название и описание... У меня не получается... Поможете? |
Здрасьте, а что плели околесицу о вставке ссылки в Input и т.д.?
За код парсера страницы нужно платить. Но оплаты можно и избежать, если использовать уже имеющиеся готовые классы, на память названий всех не помню, это simpleHTMLdom и др. Ищите гуглом, изучайте, используйте. |
Цитата:
У меня не получается спарсить автора, описание? |
Ну причем тут ява? Вам клиент собственно говоря вообще не нужен, если "тык", это единственный url, по которому нужно получить данные. Написали скрипт обработчик и запускайте его планировщиком задач.
Если все таки с клиента запускать, но по постоянному url, то просто запрос скрипта на выполнение. В любом случае парсить будет сервер, ищите в сети указанную библиотеку simpleHTMLdom, не мне же ее для вас качать. В сети есть и описание работы с ней и достаточно чтобы понять как с ней работать, ничего сложного в ней нет. Если же даже это не поможет, то могу сделать платно, но при условии четко поставленной задачи. |
Норм библиотека. Установил, вот строки есть которые парсят:
<?php include_once('../simple_html_dom.php'); echo file_get_html('https://gta5-mods.com/vehicles/2013-audi-s8-fsi-beta')->plaintext; ?> а как сделать, что-бы парсило определленные места? Например, то что в тегах <a class="myid"> ... </a> |
Щяс доделаю и спрошу что не понимаю.. :write:
|
Читайте описание ее, в ней получение по url - $html->load_file(url), поиск нужного, это метод find(content).
|
laimas,
Вот вывожу два раза, правильно так будет? <?php include_once('simple_html_dom.php'); if (isset($_POST['sub']) ) { // Create DOM from URL or file $html = file_get_html($_POST ['link']); // Find all images foreach($html->find('div[class=clearfix] h1') as $element) echo $element->plaintext . '<br>'; // Find all images foreach($html->find('a[class=username]') as $element) echo $element->plaintext . '<br>'; } ?> |
Теперь каждое нужно вставить в определенное поле input.
Подскажите как правильно сделать и я сделаю. |
Получился такой вот скрипт
<form action="example_extract_html.php" method="post"> <input type="text" name="link" value=""> <input type="submit" name="sub" value="button"> </form> <?php include_once('simple_html_dom.php'); if (isset($_POST['sub']) ) { // Create DOM from URL or file $html = file_get_html($_POST ['link']); // Find all images foreach($html->find('div[class=clearfix] h1') as $element) echo $element->plaintext; // Find all images foreach($html->find('a[class=username]') as $element) echo '<span id="pars">'; echo $element->plaintext; echo '</span>'; } ?> <input type="button" value="add" onclick = "document.getElementById('out').value += document.getElementById('pars').value + '\n'"> Но почму в поле input вставляется значение undefined? |
Вы пытаетесь скрестить ежика с колючей проволокой - серверный язык ничего не подозревает о клиентском языке и наоборот. Если полученные парсером данные нужно вставить в поля формы, которая будет отдана клиенту, то делать это нужно здесь:
foreach($html->find('div[class=clearfix] h1') as $element) echo '<input name="as[]" value="'. htmlspecialchars($element->plaintext, ENT_QUOTES) .'" />'; Либо в цикле парсера создается массив из полученных значений, который отдаются клиенту как JSON, над которыми клиент производит те или иные операции. |
Часовой пояс GMT +3, время: 02:20. |