Mon hébergement Web dit ImageMagic a été pré-installé sur le serveur. J'ai fait une recherche rapide pour "ImageMagick" dans la sortie de phpinfo () et je n'ai rien trouvé. Je ne peux pas utiliser SSH sur le serveur. Y a-t-il un moyen dans PHP Je peux vérifier l'installation?
Essaye ça:
<?php
//This function prints a text array as an html list.
function alist ($array) {
$alist = "<ul>";
for ($i = 0; $i < sizeof($array); $i++) {
$alist .= "<li>$array[$i]";
}
$alist .= "</ul>";
return $alist;
}
//Try to get ImageMagick "convert" program version number.
exec("convert -version", $out, $rcode);
//Print the return code: 0 if OK, nonzero if error.
echo "Version return code is $rcode <br>";
//Print the output of "convert -version"
echo alist($out);
?>
C'est aussi court et doux que possible:
if (!extension_loaded('imagick'))
echo 'imagick not installed';
EDIT: Les informations et le script ci-dessous s'appliquent uniquement à la classe iMagick - qui n'est pas ajoutée par défaut avec ImageMagick !!!
Si je veux savoir si imagemagick est installé et fonctionne réellement comme une extension php, je colle cet extrait dans un fichier accessible par le Web.
<?php
error_reporting(E_ALL);
ini_set( 'display_errors','1');
/* Create a new imagick object */
$im = new Imagick();
/* Create new image. This will be used as fill pattern */
$im->newPseudoImage(50, 50, "gradient:red-black");
/* Create imagickdraw object */
$draw = new ImagickDraw();
/* Start a new pattern called "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);
/* Composite the gradient on the pattern */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);
/* Close the pattern */
$draw->popPattern();
/* Use the pattern called "gradient" as the fill */
$draw->setFillPatternURL('#gradient');
/* Set font size to 52 */
$draw->setFontSize(52);
/* Annotate some text */
$draw->annotation(20, 50, "Hello World!");
/* Create a new canvas object and a white image */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");
/* Draw the ImagickDraw on to the canvas */
$canvas->drawImage($draw);
/* 1px black border around the image */
$canvas->borderImage('black', 1, 1);
/* Set the format to PNG */
$canvas->setImageFormat('png');
/* Output the image */
header("Content-Type: image/png");
echo $canvas;
?>
Vous devriez voir un graphique Hello World:
Vous pouvez facilement vérifier la classe Imagick en PHP.
if( class_exists("Imagick") )
{
//Imagick is installed
}
En bash:
$ convert -version
ou
$ /usr/local/bin/convert -version
Pas besoin d'écrire un fichier PHP juste pour vérifier.
Essayez cette solution unique qui devrait déterminer où se trouve ImageMagick, si vous y avez accès ...
Cela a trouvé toutes les versions de mon hébergement Godaddy.
Téléchargez ce fichier sur votre serveur et appelez-le ImageMagick.php
ou quelque chose puis lancez-le. Vous obtiendrez toutes les informations dont vous avez besoin ... espérons-le ...
Bonne chance.
<?
/*
// This file will run a test on your server to determine the location and versions of ImageMagick.
//It will look in the most commonly found locations. The last two are where most popular hosts (including "Godaddy") install ImageMagick.
//
// Upload this script to your server and run it for a breakdown of where ImageMagick is.
//
*/
echo '<h2>Test for versions and locations of ImageMagick</h2>';
echo '<b>Path: </b> convert<br>';
function alist ($array) { //This function prints a text array as an html list.
$alist = "<ul>";
for ($i = 0; $i < sizeof($array); $i++) {
$alist .= "<li>$array[$i]";
}
$alist .= "</ul>";
return $alist;
}
exec("convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version"
echo '<br>';
echo '<b>This should test for ImageMagick version 5.x</b><br>';
echo '<b>Path: </b> /usr/bin/convert<br>';
exec("/usr/bin/convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version"
echo '<br>';
echo '<b>This should test for ImageMagick version 6.x</b><br>';
echo '<b>Path: </b> /usr/local/bin/convert<br>';
exec("/usr/local/bin/convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version";
?>
Si votre fournisseur d'accès à Internet/service d'hébergement a installé ImageMagick et a placé son emplacement dans la variable d'environnement PATH, vous pouvez rechercher les versions installées et les emplacements où:
<?php
echo "<pre>";
system("type -a convert");
echo "</pre>";
?>
Dans Bash, vous pouvez vérifier si Imagick est un module installé:
$ php -m | grep imagick
Si la réponse est vide, il n'est pas installé.
Pour tester uniquement l’IMagick PHP (et non la suite complète ImageMagick)], enregistrez le fichier suivant sous le nom PHP (testImagick.php), puis exécutez-le à partir de console: php testImagick.php
<?php
$image = new Imagick();
$image->newImage(1, 1, new ImagickPixel('#ffffff'));
$image->setImageFormat('png');
$pngData = $image->getImagesBlob();
echo strpos($pngData, "\x89PNG\r\n\x1a\n") === 0 ? 'Ok' : 'Failed';
echo "\n";
crédit: https://mlocati.github.io/articles/php-windows-imagick.html