カテゴリー
SugiBlog Webデザイナー・プログラマーのためのお役立ちTips

指定したディレクトリ内のファイル一覧を取得する

読み込むファイル名の中には「.」と「..」が含まれるので除外します。

opendirを使う

$rdir = "[読み込むディレクトリ]";

$dh = opendir($rdir);

while (false !== ($filename = readdir($dh))) {

    // ドットで始まるファイルとディレクトリを除外
    if(!preg_match("/^\./", $filename) && !is_dir($filename)) {

        echo $filename."<br>\n";

    }

}

closedir($dh);

scandirを使う

$rdir = "[読み込むディレクトリ]";

$F = scandir($rdir);

foreach($F as $filename) {

    // ドットで始まるファイルとディレクトリを除外
    if(!preg_match("/^\./", $filename) && !is_dir($filename)) {

        echo $filename."<br>\n";

    }

}

globを使う

この場合、「.」「..」は含まれません。

$rdir = "[読み込むディレクトリ]";

foreach (glob($rdir."/*") as $filename) {
    echo $filename."<br>\n";
}
2,544 views

PHPでZip圧縮

PHPでZipArchiveクラスを使い、ファイルをZip圧縮して保存することができます。

PHP5.2.0以降ではデフォルトで使用可能となっているようですが、
明示的に使用するのであれば、コンパイル時に--enable-zipを付加してください。

作成するZipファイル名を指定します。

$zip_file = 'file.zip';

ZipArchiveクラスのインスタンスを生成します。

$zip = new ZipArchive();

ファイルを新規作成、または存在すれば上書きで開きます。

$opened = $zip->open($zip_file, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);

ファイルを追加します。

$filename = "example.jpg";
$ret = $zip->addFile($filename);

追加が完了したらZipファイルを閉じます。

$ret = $zip->close();

例)Zip圧縮したファイルをダウンロードさせる

if($ret) {
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename="'.$filename.'"'); 
    header('Content-Length: '.filesize($zip_file));
    readfile($zip_file);
}
2,793 views

PHPでサムネイルを作る[PHP with GD]

PHPでは画像をコピーして、リサイズすることができます。
今回はサムネイルを作成する方法をご紹介します。

実行するにはGDライブラリが必要となります。
GDライブラリのインストールについてはまた別の機会に。

まずは元のファイルと保存するファイルを設定します。

$original_file = "src.jpg";
$saveto_file   = "dst.jpg";

元画像のサイズを取得します。

list($width, $height) = getimagesize($original_file);

作成するサムネイルのサイズを設定します。
ここでは、元画像の3分の1としています。(小数点以下は四捨五入)

$new_width  = round($width / 3);
$new_height = round($height / 3);

元画像のリソースを取得する

$original_image = imagecreatefromjpeg($original_file);

続きを読む…»

992 views

PHPに拡張モジュールを追加 phpize

phpizeを使えば、PHPを再コンパイルすることなく拡張モジュールをビルドすることができます。

例としてPHP5.3.29の環境にzlibモジュールを追加してみます。

ソースの場所に移動

cd /usr/local/src/php-5.3.29/ext/zlib

phpizeを実行

phpize

以下のようなエラー発生することがあります。

Cannot find config.m4
Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module

続きを読む…»

9,687 views

PHP 5.2.xから5.3.xへバージョンアップ

とある環境でPHPをバージョンアップしました。
5.2.8から5.3.6へバージョンアップ。

仕様変更により推奨されない関数(Deplecated)でエラー。
今回はereg関連の関数でエラーでした。
代わりにpreg_matchを使用するようになっています。

他にも推奨されなくなった関数がありますので、詳しくは下記URLを参照してください。
PHP 5.3.x で推奨されない機能

その他、PEAR::DBでエラー。
元々のバージョンが以下の通り。
PEAR 1.50.2.18
DB 1.86
続きを読む…»

1,164 views