PHP

【PHP】ファイルのアップロードサイズ上限を上げる。

めも。

ファイルアップロード時に大きなファイルを上げたい場合、php.iniの下記項目を修正する。

upload_max_filesize = 128M
post_max_size = 128M

upload_max_filesizeに至っては初期値が2Mだから大きめのCSVを上げたりするとすぐ引っかかるんだよね。

 

【PHP】Maximum execution time of 30 seconds exceededエラーへの対応。

PHPで処理をさせていて、タイトルのようなエラーが出てしまう場合、
php.iniの下記項目をいじればOK。

max_execution_time = 30

初期値は30(秒)となっているのでここを任意の秒数に変更すれば良い。

 

【CentOS, PHP】CentOSにmecab、php_mecabをインストールする。

タイトルのことをやった時のメモ。

■CentOSにmecabをインストールする。

wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
tar zxfv mecab-0.996.tar.gz
cd mecab-0.996
./configure --enable-utf8-only
make
make install

■IPAdicをインストールする。
これはmecabの標準辞書。

wget http://sourceforge.net/projects/mecab/files/mecab-ipadic/2.7.0-20070801/mecab-ipadic-2.7.0-20070801.tar.gz
tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-mecab-config=/usr/local/bin/mecab-config --prefix=/usr/local/ --with-charset=utf8
make
make install

下記ファイルでmecabが使用する辞書の設定が確認出来る。

vi /usr/local/etc/mecabrc

※以下が使用している辞書のパス

dicdir = /usr/local/lib/mecab/dic/ipadic

■php_mecabをインストールする。

wget https://github.com/downloads/rsky/php-mecab/php-mecab-0.5.0.tgz
tar xzvf php-mecab-0.5.0.tgz
cd php-mecab-0.5.0
phpize
./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
make
make install

以下のメッセージが表示されれば無事完了。

Installing shared extensions: /usr/lib64/php/modules/

■php.iniにエクステンションを追加して完了

vi /etc/php.ini

php.iniの好きな位置に下記行を記述する。

extension=mecab.so

apatchを起動して完了。

# 再起動もしくは
service httpd restart

# 再読み込み
service httpd reload

以上で全て完了。お疲れ様でした。

 

【PHP】mkdir()で再帰的にディレクトリを生成する方法。

前回のエントリ←で再帰的にディレクトリを生成する関数をメモったけど
PHP5からはmkdir単体で同一のことを実便出来る模様。

mkdir('/path/to/dir', 0777, true);

第三引数にtrueを渡せば、recursiveで動作してくれる。

 

【PHP】指定したディレクトリを再帰的に生成する。

めも。

function mkdir_r($dirname) {
	if(file_exists($dirname)) {
		return false;
	}
	if(strpos($dirname, '/') && !file_exists(dirname($dirname))) {
		if(mkdir_r(dirname($dirname)) === false) {
			return false;
		}
	}
	return mkdir($dirname);
}

生成したいパスを渡せばそこに到達するまでのパスすべてに必要なディレクトリを生成してくれる。

 

【PHP】HTTPSリクエストか否かを判定する。

めも。

if ($_SERVER['HTTPS'] != 'on') {
	// httpsリクエストではない場合の処理
	
} else {
	// httpsリクエストである場合の処理
	
}

 

【PHP】様々な便利ラッパー関数群を提供してくれる「util.php」。

衝撃の発見。

これは相当便利な匂いがする。

http://brandonwamboldt.github.io/utilphp/

上記公式URLを参照すると分かる通り、様々な便利関数が提供されている。

これは今後include必須になるかも!?

 

【PHP】二つの文字列の類似性を計算する。

面白い関数を見つけたのでメモ。

$var_1 = 'abcdee'; 
$var_2 = 'eefghi'; 

similar_text($var_1, $var_2, $percent); 

var_dump($percent);

↓

float(33.333333333333)

上記のように二つの文字列を渡すと、第三引数に類似性のパーセンテージを返してくれる。

これは何か面白い事に使えそうな予感。