Я написал сканер сайта, чтобы получить ссылки и изображения для создания карты сайта, но он убил во время работы!так что это не весь мой класс
class pageCrawler {
.......
private $links = array();
public function __construct ( $url ) {
ignore_user_abort ( true );
set_time_limit ( 0 );
register_shutdown_function ( array ( $this, 'callRegisteredShutdown' ) );
$this->host = $urlParts [ 'host' ];
$this->crawlingUrl ( $url );
$this->doCrawlLinks ();
}
$this->crawlingUrl ( $url )
: в начале основной адрес, установленный для этого метода (например, http://www.mysite.com)
getUrl()
: подключиться к URL-адресу с помощью fsockopen, затем получить URL-адрессодержимое
findLinks()
: вернуть a href
и img src
, а затем сохранить возврат ссылок в $this->links[]
, затем я выведу что-нибудь, чтобы очистить вывод и вставить после этого следующий код:
echo str_pad ( " ", 5000 );
flush ();
$this->doCrawlLinks()
: это проверка $this->links
и выполнение того же процесса, который я описал сверху для первого элемента $this->links
, затем снова сдвинем первый элемент doCrawlLinks()
запустим и получим URL-адрес первого элемента, затем сдвинем первый элемент$this->links
до $this->links
становится пустым
это общая тенденция моего класса, это работа, но внезапно она внезапно рухнула. Я установил set_time_limit(0)
, чтобы сделать навсегда, но мой процесс не закончился, потому что мой shoutdoownфункция не выполняется, я запутался, где моя проблема