Есть код под хамп работает а под Ubuntu нет, ремируешь QRcode::png класс всё норм, но естественно картинок не создаёт, в чём может быть отличия. Разрешения в Ubuntu на папки поставил xampp 7.1.15 ubuntu 7.1.26-1 в нём класс ханадрит Ссылка на код где class лежит https://pastebin.com/MwG5znG9
echo "<h1>PHP QR Code</h1><hr/>";
//set it to writable location, a place for temp generated PNG files
$PNG_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'temp'.DIRECTORY_SEPARATOR;
//html PNG location prefix
$PNG_WEB_DIR = 'temp/';
include "qrlib.php";
//ofcourse we need rights to create temp dir
if (!file_exists($PNG_TEMP_DIR))
mkdir($PNG_TEMP_DIR);
$filename = $PNG_TEMP_DIR.'test.png';
//processing form input
//remember to sanitize user input in real-life solution !!!
$errorCorrectionLevel = 'L';
if (isset($_REQUEST['level']) && in_array($_REQUEST['level'], array('L','M','Q','H')))
$errorCorrectionLevel = $_REQUEST['level'];
$matrixPointSize = 4;
if (isset($_REQUEST['size']))
$matrixPointSize = min(max((int)$_REQUEST['size'], 1), 10);
if (isset($_REQUEST['data'])) {
//it's very important!
if (trim($_REQUEST['data']) == '')
die('data cannot be empty! <a href="?">back</a>');
// user data
$filename = $PNG_TEMP_DIR.'test'.md5($_REQUEST['data'].'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';
QRcode::png($_REQUEST['data'], $filename, $errorCorrectionLevel, $matrixPointSize, 2);
} else {
//default data
echo 'You can provide data in GET parameter: <a href="?data=like_that">like that</a><hr/>';
QRcode::png('PHP QR Code :)', $filename, $errorCorrectionLevel, $matrixPointSize, 2);
}
//display generated file
echo '<img src="'.$PNG_WEB_DIR.basename($filename).'" /><hr/>';
На то что ругается в логах дальше
class QRimage {
//----------------------------------------------------------------------
public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE)
{
$image = self::image($frame, $pixelPerPoint, $outerFrame);
if ($filename === false) {
Header("Content-type: image/png");
ImagePng($image);
} else {
if($saveandprint===TRUE){
ImagePng($image, $filename);
header("Content-type: image/png");
ImagePng($image);
}else{
ImagePng($image, $filename);
}
}
ImageDestroy($image);
}
//----------------------------------------------------------------------
public static function jpg($frame, $filename = false, $pixelPerPoint = 8, $outerFrame = 4, $q = 85)
{
$image = self::image($frame, $pixelPerPoint, $outerFrame);
if ($filename === false) {
Header("Content-type: image/jpeg");
ImageJpeg($image, null, $q);
} else {
ImageJpeg($image, $filename, $q);
}
ImageDestroy($image);
}
//----------------------------------------------------------------------
private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4)
{
$h = count($frame);
$w = strlen($frame[0]);
$imgW = $w + 2*$outerFrame;
$imgH = $h + 2*$outerFrame;
$base_image =ImageCreate($imgW, $imgH);
$col[0] = ImageColorAllocate($base_image,255,255,255);
$col[1] = ImageColorAllocate($base_image,0,0,0);
imagefill($base_image, 0, 0, $col[0]);
for($y=0; $y<$h; $y++) {
for($x=0; $x<$w; $x++) {
if ($frame[$y][$x] == '1') {
ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[1]);
}
}
}
$target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint);
ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH);
ImageDestroy($base_image);
return $target_image;
}
}
?>
авкп
[Fri Jul 05 13:04:46.832565 2019] [php7:error] [pid 18833] [client 10.59.3.1:1683] PHP Fatal error: Uncaught Error: Call to undefined function ImageCreate() in /*/*/*/qrimage.php:75\nStack trace:\n#0 /*/*/*/qrimage.php(33): QRimage::image(Array, 4, 2)\n#1 /*/*/*/qrencode.php(494): QRimage::png(Array, '/*/*/*/t...', 4, 2, false)\n#2 /*/*/*/qrencode.php(286): QRencode->encodePNG('PHP QR Code :)', '/*/*/*/t...', false)\n#3 /*/*/*/index.php(71): QRcode::png('PHP QR Code :)', '/*/*/*/t...', 'L', 4, 2)\n#4 {main}\n thrown in /*/*/*/qrimage.php on line 75
Если скрипт использует графические методы, нужно убедится в подключении графической библиотечки.
Ссылка на stackoverflow(Eng) с этой же проблемой
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть сообщения из БД, как сделать что-то типо диалоговЧтобы показывалось только последнее сообщение (проверка по логину)
Ранее задавал вопрос как сортировать данные полученные из базы средствами PHP, посоветовали что лучше составить запрос на SQL
В админке Битрикса при переходе Настройки-Инструменты-Диагностика-Настройки PHP (/bitrix/admin/phpinfophp) выдаёт пустую страницу