Помогите доделать парс. Очень нужно.

Печать RSS
410

I
Автор
Пришелец
0
Всем общий привет!Друзья нужна ваша помощь.
Суть обращения такова есть код парса писал сам "Ну как писал собирал по интернету!" Код вот
 
<form action="" method="get">
  <input name="url" placeholder="Искать здесь..." type="search" required>
  <button type="submit">Поиск</button>
</form>

<?php
/*
Грабим все от Названия фильма до Скриншоты (на донноре от Наименование до Скриншоты)
*/
//откуда будем парсить информацию  http://freerutor.com/491046-taymless-3-izumrudnaya-kniga-2016-hdrip

$content = file_get_contents($_GET['url']);

// Определяем позицию строки, до которой нужно все отрезать
$pos = strpos($content, '<b>Наименование:</b>');
$pos = strpos($content, '<div style="margin-top: 5px;"> ');


//Режим хлам
$content=preg_replace('|<b>Есть реклама</b>(.*?)<!--/noindex-->|is','',$content);
$content=preg_replace('|<!--noindex--><b>Видео данные:</b>(.*?)<br />|is','',$content);
$content=preg_replace('|<ul id="fr_tex"><li><!--noindex--><b>Видео:</b>(.*?)<br />|is','',$content);
$content=preg_replace('|<b>Аудио:</b> (.*?)<br />|is','',$content);
$content=preg_replace('|<b>Аудио данные:</b>(.*?)<br />|is','',$content);
$content=preg_replace('|<b>Субтитры:</b>(.*?)<br />|is','',$content);
$content=preg_replace('|<li class="fr_one">(.*?)</li>|is','',$content);
$content=preg_replace('|<li class="fr_two">(.*?)</li>|is','',$content);
$content=preg_replace('|<li class="fr_three">(.*?)</li>|is','',$content);
$content=preg_replace('|<div style="margin-top: 5px;">(.*?)</div>|is','',$content);
//Отрезаем все, что идет до нужной нам позиции
$content = substr($content, $pos);
// Точно таким же образом находим позицию конечной строки
$pos = strpos($content, '</div></div>');
// Отрезаем нужное количество символов от нулевого
$content = substr($content, 0, $pos);


// выводим спарсенный текст.
echo $content;

?>
I
Автор
Пришелец
0
Все работает но мне нужно чтобы данные строки
$content=str_replace('Наименование','Название',$content);
$content=str_replace('Продолжительность:','Продолжительность:',$content); поменялись местами и стали так $content=str_replace('Продолжительность:','Продолжительность:',$content);
$content=str_replace('Наименование','Название',$content);
То есть, при парсинге страница выводится так:
Название: [b][/b]
Оригинальное название: [b][/b]
Жанр: 
Страна: 
Режиссер: 
В ролях: 
[b]О фильме:[/b]
 
Перевод: [b] [/b]
Продолжительность:
А нужно что бы так:
Название: [b][/b]
Оригинальное название: [b][/b]
Жанр: 
Страна: 
Режиссер: 
В ролях: 
Продолжительность:
Перевод: [b] [/b]
[b]О фильме:[/b]
Мне один человек говорил что можно сделать так (вот его слова):
Можно. Записываешь данные в массив как надо, а потом implode(массив) в переменую. Но тут уже нужно использовать регулярку. Но вот как это сделать не могу понять. Тем более что с пыхом вообще никогда не сталкивался. Кто может помочь? Заранее всем спасибо.
J

Оранжевые штаны
0
Лови костыль
<?php
$data = file_get_contents("http://freerutor.com/491046-taymless-3-izumrudnaya-kniga-2016-hdrip");

preg_match_all('/<b>Название:<\/b>(.*)<br.\/><b>Оригинальное название:<\/b>(.*)<br.\/><b>Жанр:<\/b>(.*)<br.\/><b>Выпущено:<\/b>(.*)<br.\/><b>Режиссер:<\/b>(.*)<br.\/><b>В ролях:<\/b>(.*)<div.*<b>Краткое описание:<\/b>(.*)<div.*<b>Видео:<\/b>(.*)<br.\/><b>Аудио:<\/b>(.*)<br.\/><b>Перевод:<\/b>(.*)<br.\/><b>Продолжительность:<\/b>(.*)<!/sU', $data, $matches);

unset($matches[0]);

$result = [];
foreach ($matches AS $key => $value) {
    $result[] = trim(strip_tags($value[0]));
}

list($name, $original_name, $genre, $country, $producer, $actors, $description, $video, $audio, $voice, $duration) = $result;

echo '<b>Название:</b> ' , $name , '<br/>';
echo '<b>Оригинальное название:</b> ' , $original_name , '<br/>';
echo '<b>Жанр:</b> ' , $genre , '<br/>';
echo '<b>Страна:</b> ' , $country , '<br/>';
echo '<b>Режиссер:</b> ' , $producer , '<br/>';
echo '<b>В ролях:</b> ' , $actors , '<br/>';
echo '<b>Описание:</b> ' , $description , '<br/>';
echo '<b>Видео:</b> ' , $video , '<br/>';
echo '<b>Аудио:</b> ' , $audio , '<br/>';
echo '<b>Перевод:</b> ' , $voice , '<br/>';
echo '<b>Продолжительность:</b> ' , $duration , '<br/>';
I
Автор
Пришелец
0
GalaxyNote7,
Спасибо сейчас попробую.

Добавлено через 02:45 сек.
GalaxyNote7,
Parse error: syntax error, unexpected '[' in W:\domains\localhost\pr\index.php on line 8
J

Оранжевые штаны
+1
на другой. первый только для одного файла.
Код
ты какую версию php используешь?
Изменил: JustZero (29.01.2017 / 19:14)
I
Автор
Пришелец
0
GalaxyNote7,
5,3

Добавлено через 04:21 сек.
GalaxyNote7,
Спасибо то что нужно.Еще раз ОГРОМНОЕ СПАСИБО.
I
Автор
Пришелец
0

на другой. первый только для одного файла.

Код

ты какую версию php используешь?
GalaxyNote7Код (Сегодня / 19:06) Отредактировано: GalaxyNote7 (Сегодня / 19:14)
Слушай еще один маленький вопросик можно?
Можно ли как-то в этом коде прописать чтобы ссылки на торрент и ютуб выводились тоже???
I
Автор
Пришелец
0
Все решил эту проблему. Там не спарсить ссылки на торрент так как они находяся в системной папке.Спасибо еще раз.
I
Автор
Пришелец
0
[quote=GalaxyNote7Код (29.01.17 / 19:06) Отредактировано: GalaxyNote7 (29.01.17 / 19:14)]
на другой. первый только для одного файла.

Привет слушай можно еще вопросик по этому коду??? Если да то вот в чем суть в новостях которые парсю есть такое вот то есть название год и т.д: Один против всех / Предатель (1-12 серии из 16) (2017) SATRip
То что цветное мне нужно вывести в определенные поля, но как это сделать понять не могу так как к примеру делаю таким образом:
if (preg_match('/<h1>Убить гонца \/ Пристрелите посланника(.*)(?: WEB-DLRip | ColdFilm|<\/h1>)/sU', $data, $duh)) {
    echo '', clear($duh[1]), '';
}
Выводит вроде бы (1 сезон: 1-8 серии из 8) (2016) но 2 вещи, первая мне нужно это разбить по разным полям это--> 2016 должно стать в поле Год, а это -->1 сезон: 1-8 серии из 8
в такое поле Добавлена серия 1-8 (из 8) . И второе: при парсинге другого фильма-сериала меняется название Убить гонца \/ Пристрелите посланника и парс не выводит ничего из этого поля, можно ли как-то это реализовать????? На что моей головы хватило то и перепробовал но ничего не помогло.Помоги плиз. Заранее спасибо.
Изменил: igrovik1 (31.01.2017 / 22:32)
I
Автор
Пришелец
0
И это решил тоже!!!
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск