サーバーで、有効化されている、phpのモジュールを調べるには、get_loaded_extensions()を使うと良いらしい。
<?php
print_r(get_loaded_extensions());
?>
上記のコードを書いて、サーバーにアップして、アクセスすると、有効なphpモジュールが、配列で表示される。
サーバーで、有効化されている、phpのモジュールを調べるには、get_loaded_extensions()を使うと良いらしい。
<?php
print_r(get_loaded_extensions());
?>
上記のコードを書いて、サーバーにアップして、アクセスすると、有効なphpモジュールが、配列で表示される。
以前の記事、
の続き。
画像をリサイズして、アップロードする方法。
phpコード
<?php
$name = $_FILES['up']['name'];
$uploadfile ='images';
$uploadfile_s = 'images_s';
move_uploaded_file($_FILES['up']['tmp_name'], "$uploadfile/$name");
$src_image = imagecreatefromjpeg("$uploadfile/$name");
$src_w = imagesx($src_image);
$src_h = imagesy($src_image);
$dst_w = "180";
$dst_h = "180";
if($src_w > $src_h){
// 横長画像の場合
$dst_h = $src_h * ($dst_w / $src_w);
}else{
// 縦長画像の場合
$dst_w = $src_w * ($dst_h / $src_h);
}
$dst_image = imagecreatetruecolor($dst_w, $dst_h);
if(!imagecopyresampled($dst_image,$src_image,0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h)){
echo '画像のリサイズを完了できません。<br/>';
echo 'srcimage='.$src_image . ' w=' . $w . ' h=' . $h . ' dst_image='. $dst_image .'<br/>';
}else if(imagejpeg($dst_image,$uploadfile_s.'/'.$name,100)){
echo 'リサイズ後の画像を保存しました。<br/>';
}
?>
このコードは、GDモジュールが有効になっていないと、実行されない。
青文字の、imagecopyresampled()は、画像をリサイズしてコピーしている。詳しくは、こちら。
緑文字の、imagejpeg()は、画像を指定したフォルダに保存している。詳しくは、こちら。
この場合、アップロードしたままのサイズの画像が、「images」フォルダーに格納され、リサイズした画像が、「images_s」フォルダーに格納される。このコードを、いい感じに改造して使おう。
ちなみに、今回は、こちらのサイトをかなり参考にさせて頂きました。
画像を扱うモジュール、GDが動かない時は、php.iniファイルの「extension=php_gd2.dll」をチェックする。大体639行目付近にある。
「;extension=php_gd2.dll」こんな感じで、セミコロンがついていたら、無効になっているので、セミコロンを消す。
…たった、セミコロン一個で、一時間彷徨ったのか……
一歩前進したと思おう…