Задача скрипта собрать все ссылки с сайта, но не знаю почему не получается.
Ошибок скрипт не выводит.
Вот сам скрипт..
PHP:
скопировать код в буфер обмена
class links{ //полученный url public $_url; //все ссылки сайта public $_all_links = array(); //url главной страницы public $_second_url; public function __construct($url){ $this->_url = $url; $this->_second_url = $url['scheme'] . '://' . $url['host'] . '/'; } public function getAllLinksFromPage($html){//выбираем все ссылки со страницы preg_match_all("#(http|https|ftp):\/\/(.*)\.(.*?)\/(.*?)?(.*?)#",$html,$links); for ($i=0; $i<$cnt; $i++) { if(!preg_math('#(http|https|ftp):\/\/(.*?)#',$links[1][$i])){ if($link['host'] == $url['host'] or isset($link['host'])){ //преобразуем из /index.php... //в http://... $links[1 ][$i] = str_replace($this->_second_url , '', $links[1 ][$i]); $links[1 ][$i] = str_replace('www.', '', $links[1 ][$i]); $links[1][$i] = $this->_second_url . $links[1][$i]; } } } return $links;//многомерный массив } public function deleteQueryAfterEquals($url){//удаление значения после знака "=" $link = $links['scheme'] . '://' . $links['host'] . $links['path']; if(isset($links['query'])){ $link .= '?'; $querys = explode('&', $links['query']); for($i=0;$i<$cnt;$i++){ $querys[$i] = preg_replace('#=.*#','',$querys[$i]);//удаляем все после "=" $querys[$i] .= '=';//так как удалились и знаки "=" то возвращаем их $link .= $querys[$i]; } return $link;//строка } } public function findLinks(){ if(!in_array($this->deleteQueryAfterEquals($this->_url ),$this->_all_links )){//если не присутствует в массиве $this->_all_links[] = $this->deleteQueryAfterEquals($this->_url); } $match = $this->getAllLinksFromPage($buffer); foreach($match[1] as $link) { } } } }
|