PHPでアップロードされたファイルタイプのチェック方法(fileinfo, mime-type) サンプル編

Posted by admin | PEAR, PECL, PHP | 火曜日 18 3月 2008 12:11 PM

PHPでアップロードされたファイル形式(拡張子)のチェック方法です。

色々調べた所、PECLのFileinfo 関数というのが良さそうだったのでメモ。

インストール編はこちら

実際のサンプルコード。



<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // return mime type ala mimetype extension

if (!$finfo) {
echo "fileinfo データベースのオープンに失敗しました";
exit();
}

/* 指定したファイルの mime タイプを取得します */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* 接続を閉じます */
finfo_close($finfo);
?>



参考はこちら:
http://jp.php.net/manual/ja/ref.fileinfo.php





PHPでアップロードされたファイルタイプのチェック方法(fileinfo, mime-type) インストール編

Posted by admin | PEAR, PECL, PHP | 火曜日 18 3月 2008 12:00 PM

PHPでアップロードされたファイル形式(拡張子)のチェック方法です。

色々調べた所、PECLのFileinfo 関数というのが良さそうだったのでメモ。

サンプル編はこちら

まずは、インストール。



$ sudo pecl install fileinfo

Build process completed successfully
Installing '/usr/lib/php/modules/fileinfo.so'
install ok: channel://pear.php.net/Fileinfo-1.0.4


次に、iniファイルの新規作成。



$ sudo vi /etc/php.d/fileinfo.ini

extension=fileinfo.so


次に、apacheの再起動



$ sudo /etc/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]



最後に、phpinfo()で[fileinfo]の項目があればインストール完了!!





PHPで画像をリサイズ(ImageMagickとimagick) サンプル編

Posted by admin | PEAR, PECL, PHP, 画像処理 | 火曜日 18 3月 2008 10:13 AM

PHPで画像を縮小(サムネイル化)する必要があったのでメモ。

インストール編はこちら

実際に画像をサムネイル化する簡単なサンプル。



<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// 幅あるいは高さに 0 を指定すると、
// 元の画像のアスペクト比を維持します
$image->thumbnailImage(100, 0);

echo $image;

?>


参考はこちら:
http://jp.php.net/imagick

こちらも:
http://labs.unoh.net/2007/05/php_7.html





PHPで画像をリサイズ(ImageMagickとimagick) インストール編

Posted by admin | PEAR, PECL, PHP, 画像処理 | 火曜日 18 3月 2008 10:02 AM

PHPで画像を縮小(サムネイル化)する必要があったのでメモ。

サンプル編はこちら

まずは、PECLのimagickを使う為にインストール。



$ sudo pecl install imagick


すると、MagickWandのconfigが無いとかでエラー。。。
調べた結果、ImageMagick-develを入れると良いっぽい。
なので早速インストール。




$ sudo yum install ImageMagick-devel


develのインストールが完了したので、またpeclコマンド。



$ sudo pecl install imagick


今度は無事にインストール完了。
更に、iniファイルを作らなきゃダメみたいなので
imagick.iniファイルを新規作成。



$ sudo vi /etc/php.d/imagick.ini

extension=imagick.so


次に、apacheの再起動



$ sudo /etc/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]


最後に、phpinfo()で[imagick]の項目があれば完了!!





CentOSにphpコンパイラのapcをインストール

Posted by admin | CentOS, PEAR, PECL, PHP | 火曜日 4 3月 2008 4:02 PM

phpを高速化させるapcをインストールしようと思いやってみたのですが、
エラーではまってしまったので内容を備忘録の為に残しておく。


まずは、peclでインストール出来るということだったので
単純に下記のコマンドを入力。するとエラーが。。。


# pecl install apc

downloading APC-3.0.16.tgz ...
Starting to download APC-3.0.16.tgz (114,298 bytes)
.............done: 114,298 bytes
45 source files, building
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
1. Use apxs to set compile flags (if using APC with Apache)? : yes

1-1, 'all', 'abort', or Enter to continue:
building in /var/tmp/pear-build-root/APC-3.0.16
running: /var/tmp/APC/configure --with-apxs
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
ERROR: `/var/tmp/APC/configure --with-apxs' failed


何やら、Cコンパイラが無いとの事。
これに気付くのに凄く時間が掛ってしまった。。。

コンパイラが無いとの事なので、早速yumでインストール


# yum install gcc

# yum install gcc-c++




で、もう一度peclコマンドを入力


# pecl install apc

Build process completed successfully
Installing '/usr/lib/php/modules/apc.so'
install ok: channel://pecl.php.net/APC-3.0.16
configuration option "php_ini" is not set to php.ini location
You should add "extension=apc.so" to php.ini


すると今度は無事にインストール出来ました^^
でも、まだiniファイルを作らなきゃダメみたいなので

apc.iniファイルを新規追加。


# vi /etc/php.d/apc.ini

extension=apc.so



次に、apacheの再起動


# /etc/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]



最後に、phpinfo()で[apc]の項目があれば完了!!