Я довольно новичок в PHP и играю с Goutte / Guzzle, чтобы получить некоторую основную информацию с веб-сайта после заполнения нескольких форм.
Однако у меня проблемы с поиском проблем (их может быть множество), так как я не смог найти способ отобразить или сохранить в журнале какие-либо результаты или проблемы. Сценарий заканчивается кодом 0, но ничего не возвращает. Подсказка о том, как распечатать то, что в данный момент хранится в $ client, уже прошла бы долгий путь.
Вот весь код, который я пытаюсь запустить с кучей комментариев для пояснения. Я извиняюсь за использование такого большого блока, но у любого из этого могут быть проблемы.
<?php
use Goutte\Client;
use GuzzleHttp\Client as GuzzleClient;
class grabPlate
{
// WKZ
public function checkPlate
{
$goutteClient = new Client();
$guzzleClient = new GuzzleClient(array(
'cookies' => true,
'timeout' => 60,
));
$goutteClient->setClient($guzzleClient);
$crawler = $goutteClient->request('GET', 'https://kfz-portal.berlin.de/kfzonline.public/start.html?oe=00.00.11.000000');
//Click the first "Start" in the top left
$link = $crawler
->filter('a:contains("Start")')
->eq(0)
->link()
;
$crawler = $client->click($link);
//Check checkbox, fill in name and press the button
$buttonCrawlerNode = $crawler->selectButton('Weiter');
$form = $buttonCrawlerNode->form();
$form['gwt-uid-1']->tick();
$form['select2-hidden-accessible']->select('Herr');
$form['gwt-uid-4'] = 'John';
$form['gwt-uid-5'] = 'Doe';
$client->submit($form);
//Fill some Data into the forms and search
$buttonCrawlerNode = $crawler->selectButton('Button-3616');
$form = $buttonCrawlerNode->form();
$form['.kfzonline-KennzeichenGrossEb'] = 'AB';
$form['.kfzonline-KennzeichenGrossEn'] = '123';
$client->submit($form);
//Extract collection
$info = $crawler->extract('.collection');
//return 1 if something is inside collection, 0 if it's empty
if($info == NULL) {
return 1;
} else {
return 0;
}
}
}
?>
Как я уже сказал, просто запуск скрипта в PHPStorm возвращает статус 0. Однако при подключении его к API иполучая доступ к нему, я получаю ответ тайм-аута сервера.