Я хочу разработать проект, в котором пользователь должен ввести URL-адрес, а затем он сделает снимок этого приложения и сохранит его в папку.
Я могу сделать снимок экрана, но он не сохраняется в папку. я получаю ошибку:
Notice: Undefined index: extension in C:\xampp\htdocs\curlproject.php on line 20
Warning: fopen(images-folder/Z.): failed to open stream: Permission denied in C:\xampp\htdocs\curlproject.php on line 21
Вот код:
<?php
$websiteURL = $_POST["website"];
$api_response =
file_get_contents("https://www.googleapis.com/pagespeedonline/
v2/runPagespeed?url=$websiteURL&screenshot=true");
$result = json_decode($api_response, true);
//screenshot data
$screenshot = $result['screenshot']['data'];
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);
//display screenshot image
echo "<img src=\"data:image/jpeg;base64,".$screenshot."\" />";
$split_image = pathinfo($screenshot);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL , $screenshot);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT
5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C
Safari/525.13");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response= curl_exec ($ch);
curl_close($ch);
$file_name = "images-
folder/".$split_image['filename'].".".$split_image['extension'];
$file = fopen($file_name , 'w') or die("X_x");
fwrite($file, $response);
fclose($file);
?>
Вы можете найти сделать в PHP …
на твоем месте Я бы сделал это через JavaScript
Просто для вашего знания Используйте правильный инструмент для захвата экрана … т.е. phantom.js
вот простой код, чтобы сделать скриншот
var page = require('webpage').create();
page.open(url, function () { // your URL
page.render('D:/MySnapShotBox/saveAsSomeNome.png'); // can change location
});
Прелесть регистрации ошибок в том, что она точно указывает, где искать проблему.
Notice: Undefined index: extension in C:\xampp\htdocs\curlproject.php on line 20
В строке 20 у вас есть:
$file_name = "images-folder/".$split_image['filename'].".".$split_image['extension'];
Так что все, что должно быть настройка $split_image['extension']
очевидно, ничего не делает.
Далее его:
Warning: fopen(images-folder/Z.): failed to open stream: Permission denied in C:\xampp\htdocs\curlproject.php on line 21
Строка 21 использует имя файла, построенное в строке 20, и пытается открыть файл:
$file = fopen($file_name , 'w') or die("X_x");
Сначала нужно исправить первую проблему, чтобы получить правильное имя файла, затем вы должны использовать абсолютный путь для указания каталога и, наконец, убедиться, что учетная запись пользователя, на которой работает ваш веб-сервер, имеет разрешения на запись в каталог.