「PHP」カテゴリーアーカイブ

PHPでよく使う関数の逆引きテクニック一覧


PHPで使用頻度の高い関数を不定期にまとめていきます。

基本的な用法などだけ記載していきます。

管理人用のPHP関数などのメモ書きです。

PHPの逆引き辞典としてこのページはお使いください。

 

PHPでファイルを削除する

unlink関数を使います。

例)

unlink(“hoge.txt”);

なお、ディレクトリパスを指定してunlink関数を使ってしまうと

Operation not permitted

というエラーメッセージが表示されます。間違え易いので注意しましょう。

PHPでディレクトリを削除する

rmdir関数を使います。

例)

rmdir(“/hoge/hoge_user/del_directory”);

また、PHPではディレクトリの中にファイルが含まれている場合、丸ごと削除する機能は無い様です。

rm → remove

dir → directory

の英単語の頭文字を使った関数名になっています。

PHPで指定したディレクトリの中にあるディレクトリ(ファイル)一覧を取得する

$directory_list = scandir({調べたいディレクトリパス});
var_dump($directory_list);

array(4) {
[0]=>
string(1) “.”
[1]=>
string(2) “..”
[2]=>
string(32) “test_directory_1”
[3]=>
string(32) “test_directory_2”
}

配列にはこんな具合でディレクトリ名が格納されます。

なお、このscandir関数は、ディレクトリの中に入っているファイル名も取得出来ます。

 


securimageの設定の変更方法


今回は、画像認証機能を簡単に実装できる、securimageを使用する場合の設定の変更方法を書いていきます。

まず、securimageをダウンロードすると、「securimage」というフォルダが圧縮された状態でダウンロードフォルダに入りますので、解凍し、「securimage」フォルダまるごとEcliipse内に貼りつけます。

securimageのフォルダを開くと、「securimage_show.php」というphpファイルがありますので、それを開きます。

デフォルトの状態ですと、中身はほとんどコメントアウトされているかと思います。
今回注目するのは「$img = new Securimage();」というコードと「$img->show();」の間にあるコメントアウトされている部分です。

その部分よく見ると、「$img->…」がたくさんあると思います。
この中で最も変更したいと思う方が多い部分の解説をしていきたいと思います。

$img->image_height    = **;
→画像認証の画像の高さを変更

$img->image_width    = **;
→画像認証の画像の幅を変更

$img->perturbation   = .**;
→画像の文字の読みにくさを変更
これは小数点以下から指定できる?ようです。(0.1、0.5など)
ちなみに0.9だと読みにくく、0.1だととても読みやすい画像になりました。

$img->code_length = **;
→画像認証の文字数です。
**の部分に入力した数字分、文字が表示されます。
(** = 8 にすると8文字表示されます。)

変更したい部分のコメントアウトを解除して数値を変更してください。

他の部分も見ればどの部分を変更できるかだいたいわかるかと思いますが、私は触ることはありませんでした!
画像認証の画像にこだわりたい方はぜひいろいろいじってみてください!

今回は以上です。

——▼ 追記 ————————————————

【 CakePHP を使用している場合 】

apps ではなく www  直下に securimage のファイルをセット
認証画面を表示したい View 部分に下記コードを記入すれば画像が表示されます。

<img src=”<?php echo $this->webroot; ?>securimage/securimage_show.php”>

画像の詳細設定は上記と同じく securimage_show.php に記述してください。

Securimageのカスタマイズ(上記の続きになります↓)

▼文字数をランダム
$img->code_length = rand(3,5);

▼文字のフォント
$img->ttf_file = ‘./Quiff.ttf’;

▼表示する文字列
$securimage->charset =’ABCDEFGHKLMNPRSTUVWYZabcdefghklmnprstuvwyz23456789′

▼文字色の変更
$img->text_color = new Securimage_Color(“#000000”);

▼背景色の変更
$img->image_bg_color = new Securimage_Color(“#FFFFFF”);

▼背景画像の変更
$img->show(‘backgrounds/bg1.jpg’);

▼線の本数
$img->num_lines = 8;

▼線の色
$img->line_color = new Securimage_Color(“#000000”);


phpでDateTime関数を使用しようとしてエラーが出る場合の対処方法【Fatal error: Uncaught exception ‘Exception’ with message ‘DateTime::__construct():】


Fatal error: Uncaught exception ‘Exception’ with message ‘DateTime::__construct(): 

It is not safe to rely on the system’s timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone_set()
function. In case you used any of those methods and you are still getting this warning,
you most likely misspelled the timezone identifier.
We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone.
‘ in /home/XXX/www/XXX.php:XXX Stack trace:
#0 /home/XXX/XXX.php(XXX):
DateTime->__construct(’20XX/XX/XX’) #1 {main} thrown in /home/XXX/XXX.php on line XXX

phpで日付関数を使おうとしてこのエラーが出てしまう場合には
php.iniに以下のタイムゾーンを指定すれば直ります。

;タイムゾーンを指定する。

date.timezone = Asia/Tokyo

 


【PHPエラー】500 Internal Server Error : UID of script “/home/XXX/newfile.php” is smaller than min_uid


PHPを実行した時に以下の様なエラーが出る場合が
あります。

500 Internal Server Error : UID of script “/home/XXX/newfile.php” is smaller than min_uid

Internal Server Error
UID of script “/home/XXX/newfile.php” is smaller than min_uid
suPHP 0.7.1

 

このエラーの原因は、対象PHPファイルの所有者がrootになっている事が原因でした。この所有者・権限を変更する事によりエラーが出なくなります。

WinSCPを起動 > 対象ディレクトリの上で右クリック > プロパティ(P) >

グループ

所有者

それぞれがrootになっている場合には、これをユーザ名に変更する。

ここでは、 rootからhogehogeに変更しました。

php-error

 

 

次に、

同じパーミッション/グループ/所有者を再帰的に設定(R)

にチェックを入れて、OKボタンを押せば解決しましす。


さくらインターネット等のレンタルサーバ上でPHPのインストールされている場所を調べるには?


レンタルサーバを契約した時にcronからphpを実行させる為に、phpのインストールされている場所を調べたい場合があります。

その場合には

whereis php

を実行すればphpのインストールされた場所が表示されます。

実行すると

php: /usr/local/bin/php

という風にインストール場所が表示されます。

whereis


ロリポップのコロリプランでcron(クーロン)を実行するには?


ロリポップのコロリプランでcron(クーロン)を設定しました。

その時の例です。さくらインターネットとはcronの指定方法が若干違います。

 

cronの設定の仕方

 

1.管理画面にログインする。

2.WEBツールにフォーカスを当てる。

3.cron設定をクリックする。

loli

 

 

4.cronの設置を行う。

1) cronの設定名にクーロンの名前を付ける。

2) 実行したいタイミングをプルダウンより選択する。

3)  cron(クーロン)で実行したいスクリプトを指定する。

hoge.php を実行したい場合には、 hoge.phpのみ指定する。

loli-2

 

 

 

さくらインターネットよりもロリポップの方がクーロンの指定は簡単です。

ついでにさくらインターネットでのcronを指定する場合のコマンドは以下の通りです。

cd /home/{user_name}/www/{made_directory}; /usr/local/bin/php hogehoge.php 1> /dev/null

 


画像を表示させる方法


PHP内での画像を表示させる方法を紹介します。

まずはじめに、eclipseに画像を入れます。
わかりやすいように、デスクトップ上にウェブに反映したい画像を貼りつけておきます。
この画像の上で右クリックし「コピー」を選択します。

次にeclipseを開き、画像を移します。
まずは開発環境のwwwの「img」を選択します。
汎用性の高い、よく使う画像であればimgの中に「common」という名前のフォルダを作ると、画像の整理もでき、良いかと思います。
フォルダを選択した状態で右クリックし「貼り付け」をクリックします。
そうすると、フォルダの中に画像が貼りつけられるので、eclipseへの画像の反映は完了です。

次はこの画像をウェブに反映させるための作業です。
表示させたいページに下記のようにPHP内に書き出します。

print(“<img src=¥”/フォルダ名/画像名¥”>”);

※¥は半角の円マークにしてください。
※フォルダ名は一つ中に入るごとに半角スラッシュで区切ります。

このような式を書き保存したあとにウェブを見ると、画像が反映されていることがわかると思います。

また、altを使うと画像がなんらかの形で潰れて見れなくなってしまった際に、画像の説明文を表示させることができます。

print(“<img src=¥”/フォルダ名/画像名¥” alt=¥”サイトのロゴ¥”>”);

※¥は半角の円マークにしてください。
※フォルダ名は一つ中に入るごとに半角スラッシュで区切ります。

こうすることで「サイトのロゴ」という説明文付きの画像をアップすることができます。