gdライブラリを利用してサムネイルを作成する画像アップローダを作る

保存先ディレクトリを選択できる画像アップローダー

/***  受け取ったあとの処理 ***/
//格納するディレクトリ
$updir = "../images";
//アップロードされたファイルが存在するかどうかを確認
if( is_uploaded_file($_FILES["upfile"]["tmp_name"])or die("no")){
//アップロードされたファイルをディレクトリへコピーする
if( move_uploaded_file($_FILES["upfile"]["tmp_name"], $updir . "/" . $_FILES["upfile"]["name"])or die("nono")){
chmod($updir . "/" . $_FILES["upfile"]["name"], 0644);
$file_name = $updir . "/" .  $_FILES["upfile"]["name"];
}else {
print "ファイルをアップロードできません。";
}
} else {
print "ファイルが選択されていません。";
}
//アップロードした画像を加工する
$image = ImageCreateFromJPEG($file_name);
    //元画像のサイズを取得する
$size = getimagesize($file_name);
$old_width = $size[0]; //横
$old_height = $size[1]; //縦
    //いろいろ出力して確認しながら。。。
//print "<br>画像の横幅:" . $old_width ."<br>";
    //サムネイルの横幅
$new_width = "80";
    //縦と横が同じ比率で圧縮されるように計算する
$rate = $new_width / $old_width;
$new_height = $old_height * $rate;
//print "圧縮比:" . $rate . "<br>";
    //縮小された画像を貼り付ける(?)画像を作成する
$new_image = ImageCreateTrueColor($new_width, $new_height);
    //imagecopyresizedで元画像を圧縮する
if(ImageCopyResized($new_image, $image,0,0,0,0,$new_width,$new_height,$old_width,$old_height)){
print "圧縮されました";
}
//サムネイルを保存するためのパスとファイル名。ここではthumというディレクトリを作ります
$updirthum = $updir . "/thum/" . $_FILES["upfile"]["name"];
//imageJPEGで圧縮した画像をJPEGとして保存します。
imageJPEG($new_image, $updirthum)or die("could not save image");
画像IDを破棄します
imagedestroy ($dst_img);
imagedestroy ($src_img);

ちなみに縮小した画像を表示するには

header("ContentType: image/jpeg");
imagejpeg($new_image);

とします。

imagejpegの前にヘッダー情報を出力しないと、もしくはヘッダー情報の前に何か出力してると、
画像が文字列で出力されてしまいます。。。

画像の表示はできるのに保存ができず2,3日困ってしまいましたが、ただのパーミッッションの
問題だったようです。

SSHでログインして

chmod [775] [ディレクトリ名]

で解決しました。
保存先を別のディレクトリにしてるときは注意

auto_incrementの初期値をあとから設定する

テストデータとして、auto_incrementの設定してあるカラムへ
大きい値のデータを手動で入力したら、自動で振られる番号がその
続きからになってしまいました。

auto_incrementの初期値は

show table status from [データベース名] like '[テーブル名]'

から確認できます。

初期値を設定するには↓

alter table [テーブル名] auto_increment=[初期値];

設定しようとした値がカラム内の現在の最高値以下だと、変更は反映されず、エラー メッセージ
も表示されません。

ヒヤッとしました。。。

in_array serch_array

$hogehoge = array();
for($i=0;$i>=100;$i++){
if(($i%3) == 0){
array_push($hogehoge,$i);
}
}
if(in_array($check,$hogehoge)){
print "その数は配列に存在します";
}else{
print "その数は配列に存在しません";
}

RHEL4のためのrpmライブラリ

環境 : RHEL4ES(x86_64) apache2.0 php4.3.9

PHPのインストール時にphp<-mbstringとphp-gdを入れてなかったみたいでいろいろ滞っている。

yumコマンドで追加インストールを試みるもうまく行かず。
http://mt.hiroyukiarai.jp/mt-tb.cgi/20

yum install php-mbstring

RHELではyumではなくてrpmでパッケージ管理するとのこと。apt-getでももちろんない。知らんかった。。。
なのでrpmファイルをダウンロードしてきてインストールします↓↓
まずは現在インストールされているphpのモジュールのお問い合わせをします。

rpm -qa | grep php
  • qaは
  • q query 問いあわせ
  • a 全てのインストール済みパッケージの問い合わせ

php 4.3.9-3.22.9

とか出てくるので、
php-mbstring-4.3.9-3.22.9.x86_64.rpm
を探せば良いみたい。

探してみると。。。

ftp://zid-lux1.uibk.ac.at/pub/dist/centos/4/updates/x86_64/RPMS/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/scientific/4x/archives/obsolete/x86_64/
ftp://ftp.pbone.net/mirror/www.whiteboxlinux.org/whitebox/4/en/updates/x86_64/  ← ココに!!

以下はroot権限で。

ファイルのダウンロード

wget -v ftp://ftp.pbone.net/mirror/www.whiteboxlinux.org/whitebox/4/en/updates/x86_64/php-mbstring-4.3.9-3.22.9.x86_64.rpm
  • vはダウンロード状況を表示するオプション

rpm のインストール

rpm -ivh php-mbstring-4.3.9-3.22.9.x86_64.rpm
  • i パッケージのインストール
  • v 詳細情報を表示する。
  • h インストールの進行状況を#で表示

終わったら再起動

service httpd restart

確認してみると。。。

お〜インストールできちょるー

ubuntu11.04にwineをインストール

ターミナルから

$ sudo apt-get wine install

だけです。簡単。
ターミナルの場所は
「Applications」 → 「Accessories」 → 「Terminal」

apt-getは新規にパッケージをダウンロードしてインストールしてくれるコマンド
wineのバージョンの確認は

$ wine --version

バージョンは1.2.2でした。

アプリケーションを起動するときは

$ wine notepad

のようにするとメモ帳が起動します。
メモ帳、日本語を入力したらunicodo(utf-8)で保存しないと文字化けします。

日本語の漢字変換ができない問題の解決

バージョンは10.04です。
インストールしてみたものの日本語の入力はできるのに漢字変換ができない。

解決方法は(解決方法じゃないかもしれませんが)

「system」 → 「language support」 で”ibus"が選択されているのを "scim-bridge"に変更して再起動

無い場合は

「system」 → 「administration」 → 「synaptic package manager」で

scim“ と ”scimanthy“ を選択して 「apply」

ダウンロードとインストールが終わったら

「system」 → 「language support」 
“The language support is not installed completely” とか出てきたら、 「remind me later」をクリック

keybord input method system:  を ”scim-bridge”

に変更して再起動する

参考URL:http://blog.livedoor.jp/ichsod/archives/1055024.html
ibus http://www.scim-im.org/
scim http://www.scim-im.org/

ubuntuで日本語入力できるように

バージョンは11.04です。
うっかり英語版をインストールしてしまったので日本語環境を整えます。

「system」 → [sdministration」 → 「language support」

「install&remove languages」を選択し、日本語の”input method”と”extra fonts”を選択してインストール。

「system」 → 「preference」 → 「keybord input method」
で、input method のタグをひらいて”japanese anthy”を選択してclose

上の方にキーボードのアイコンが出てきたら正常にインストールされているみたい。。。

Ctl + space で日本語入力のon/offの切り替えができます。
Aち みたいなアイコンが出てるときは日本語入力モードがonです。
日本語入力モードで入力してF10でキャンセルできるのもwindowsと一緒。

Let’s note CF-W2 に ubuntu11.04 をインストール

日本から持ってきたLet’s note にubuntuをインストールしました。
DVDドライブがちょっとアレみたいでてこずりましたが、

windows上からCDを入れてドライバーっぽいのをインストール → CDから起動して通常インストールを試みるも失敗.windowsは消してしまったのであせる → 一度、インストールせずにCDから動作を試して → デスクトップのinstallアイコンをクリックしてインストール → 成功!!

みたいな感じ。。