Търсене в сайт

sle

Registered
Има ли функция в PHP или някакъв начин чрез който да търся в друг сайт през моя? Като пример ще дам сайт за обяви който извежда резултати при търсене... а мойта търсачка да може да извежда всички резултати без да имам достъп до базата им с данни. Някакво индексиране ли не знам.. ?
 
Зависи за какъв сайт става въпрос.Ако е некой по-голям сайт, може да има API за тия неща, например Youtube - https://gdata.youtube.com/feeds/api/videos?q=Sofia&orderby=published&start-index=11&max-results=10&v=2 има неколко варианта (http://php.net/manual/bg/refs.xml.php или http://bg2.php.net/manual/en/function.simplexml-load-file.php) и вадиш резултатите.

Дори и да няма такова API, пак можеш по некава логика да ги вадиш резултатите през HTML-а.Разгледай тия 2те неща където ти дадох.
 
Според мен има варянт с cURL. Ама ще трябва да си поиграеш добре за да изглежда приемливо в твоя сайт. Нещо такова:

PHP:
<?php

function get_data($url,$inputName,$searched)
{
$ci = curl_init();
curl_setopt($ci,CURLOPT_URL,$url);
curl_setopt($ci,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ci,CURLOPT_POST,true);
curl_setopt($ci,CURLOPT_POSTFIELDS,$inputName."=".$searched);
$rawData = curl_exec($ci);
curl_close($ci);

return $rawData;
}

?>

Параметри:
-$url - Адреса на сайта, в който се намира търсачката.
-$inputName - Името на полета в което се пише думата или израза за търсене. Би трябвало да успееш да го вземеш от Source-кода на страницата.
-$searched - Думата или издраза с която искаш да търсиш.

Функцията връща Сорс-кода на примерната страница след като е извършено търсенето. Оттам вече започва играчката. Но би трябвало да се справиш с помоща на explode().

Примерна употреба:

PHP:
<?php

include("function.php"); // Файла с дефинираната вътре функция

$data = get_data("http://tursachka.com","search_field","Probno tyrsene");

/*     
                     Сега $data ти съдържа целия сорс код след извършеното търсене в сайa http://tursachka.com в input полето search_field с израза
"probno tyrsene".
*/

?>

Надявам се да съм помогнал.
Успех.

П.П. Не съм пробвал кода дали работи и се извинявам предварително ако съм написал тоталнa глупост.
 

Back
Горе