PHP
情報
役立った書籍
PHPによるWebアプリケーションスーパーサンプル 第2版
ウェブ
画面遷移なしでファイルアップロードする方法
http://groundwalker.com/blog/2007/02/file_uploader_and_safari.html
ファイル・アップロードの進行状況を追跡する方法
http://www.ibm.com/developerworks/jp/opensource/library/os-php-v525/
http://zilcaroy.blogdns.org/index.php?e=58
http://blog.enjoitech.jp/detail.php?aid=148
http://cl.pocari.org/2008-04.html
バッチ処理
http://d.hatena.ne.jp/sourcehoge/20060205/1139144533
マルチスレッド
http://techblog.ecstudio.jp/tech-tips/php-multi.html
すべての漢字を取り出す
http://phpspot.org/blog/archives/2005/11/php_17.html
検索エンジンを自作する
http://gihyo.jp/dev/serial/01/make-findspot
オープンソース
クローラークラス
http://sourceforge.net/projects/phpcrawl/
ソース
- 逆引き
- POST値をまとめて変数に
- POST値まとめてエスケープ
- 値の暗号化
- Fucntion
- オートリンク
- 画像を生成(GDライブラリ)
- ファイル全て読み込み
- 新規ファイルの作成
- ファイルの最後に追記
- ファイルの最初に追記
逆引き
POST値をまとめて変数に
■パターン1extract($_POST);
■パターン2
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){
$v = htmlspecialchars($v);
$$k = $v;
}
}
POST値まとめてエスケープ
foreach($_POST as $k => $v){if (get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$$k = $v;
}
値の暗号化
■一方向(変換元はわからない)crypt()
md5()
sha1()
■双方向
base64エンコードの利用
function my_base64_encode($str, $cnt = 2) {
for ($i = 0; $i < $cnt; $i++) {
$str = base64_encode($str);
}
return $str;
}
function my_base64_decode($str, $cnt = 2) {
for ($i = 0; $i < $cnt; $i++) {
$str = base64_decode($str);
}
return $str;
}
Functions
オートリンク
function autolink($mes){return preg_replace(
"/(https?)(:\/\/[\w\+\$\;\?\-\/\.%,!#~*:@&=]+)/",
"<a href=\"$0\" target=\"_blank\">$0</a>", $mes );
}
画像を生成(GDライブラリ)
function createImage($create_img,$source_img,$img_width){list($c_width, $c_height, $c_type, $c_attr) = getimagesize($source_img);
$ratio = $img_width/$c_width;
$finfo = pathinfo($create_img);
$ext = $finfo["extension"];
$jpg = array("jpg",jpeg,JPEG,JPG);
$png = array(png,PNG);
$gif = array(gif,GIF);
if(in_array($ext, $jpg)){
$src_im = ImageCreateFromJPEG($source_img);
}else if(in_array($ext, $png)){
$src_im = ImageCreateFromPNG($source_img);
}else if(in_array($ext, $gif)){
$src_im = ImageCreateFromGIF($source_img);
}else{
return false;
}
$dst_im = imagecreatetruecolor($img_width, $c_height * $ratio);
imagecopyresampled($dst_im, $src_im, 0, 0, 0, 0, $img_width, $c_height * $ratio, $c_width, $c_height);
if(in_array($ext, $jpg)){
$im = ImageJPEG($dst_im, $create_img);
}else if(in_array($ext, $png)){
$im = ImagePNG($dst_im, $create_img);
}else if(in_array($ext, $gif)){
$im = ImageGIF($dst_im, $create_img);
}
ImageDestroy($dst_im);
ImageDestroy($src_im);
return $im;
}
ファイル全て読み込み
function readAllFile($fpath){if($file = @fopen($fpath,"r")){
flock($file, LOCK_SH);
$string = @fread($file,filesize($fpath));
flock($file, LOCK_UN);
fclose($file);
return $string;
}
return false;
}
新規ファイルの作成
function createNewFile($nCreateFileName,$nInputString){if($file = fopen($nCreateFileName, "w")){
flock($file, LOCK_EX);
fputs($file, $nInputString);
flock($file, LOCK_UN);
fclose($file);
return true;
}else{
return false;
}
}
ファイルの最後に追記
function addPostFile($nAddLogFile,$nInputString){if($file = fopen($nAddLogFile, "a")){
flock($file, LOCK_EX);
fputs($file, $nInputString);
flock($file, LOCK_UN);
fclose($file);
return true;
}else{
return false;
}
}
ファイルの最初に追記
function addHeadFile($nAddLogFile,$nInputString){$lines = file($logfile);
if($file = @fopen($nAddLogFile,"w")){
flock($file, LOCK_EX);
fputs($file, $nInputString));
for($i=0; $i<count($lines); $i++)
fputs($file, $lines[$i]);
flock($file, LOCK_UN);
fclose($file);
return true;
}else{
return false;
}
}
無料レンタルWIKIサービス