函数
很有用的一些函数,你可以作为源码保存,然后以后避免重复编写。
ファイル読み込み関数
//ファイル読み込み関数
function PHP_Read($file_name) {
$fd=fopen($file_name,r);
while($bufline=fgets($fd, 4096)){
$buf.= $bufline;
}
fclose($fd);
return $buf;
}
?>
ファイル書き込み関数
//ファイル書き込み関数
function PHP_Write($file_name, $data,$method="w ") {
$filenum=@fopen($file_name,$method);
flock($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose( $filenum);
return $file_data ;
}
?>
静的ページ生成関数
//静的ページ生成関数
function phptohtm($filefrom,$fileto,$u2u=1){
if($ u2u==1){
$data= PHP_Read($filefrom);
}else{
$data=$filefrom;
}
PHP_Write($fileto,$data);
return true;
}
?>
条件情報量取得関数を指定
//条件情報量取得関数を指定
function rec_exist($table,$where){
$query="select count(*) as num from $table ".$where;
$result=mysql_query($query); die(nerror(1));
$rowcount=mysql_fetch_array($result);
$num=$rowcount["num"];
if ($num==0){
return false;
}
return $num ;
}
?>
ディレクトリ削除関数
//ディレクトリ削除関数
function del_DIR($directory){
$mydir=dir($directory)
while ( $file=$mydir->read(); {
if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")) {
del_DIR("$directory/$file") ;
}else{
if(($file!=".") AND ($file!="..")){
unlink("$directory/$ file");
//echo "$directory のリンクを解除/$file ok
";
}
}
}
$mydir->close();
rmdir($directory);
//echo "rmdir $directory ok
";
}
?>
ディレクトリ名の正当性検出関数
// ディレクトリ名の正当性検出
function isen($str){
$ret=""
for($i=0 ;$i
if(($p57 & $p90 & $p122){
nerror("仕様を満たしていません! ");
} $ $ RET. = CHR ($ P);
}
Return $ RET;
}
? & Gt;
// 関数のパッケージ化
Function SplitList ($ Halt, $ Lrlist, $ECHOCNT ,$paper,$table,$where,$page_id,$userid){
global $splitstr,$sumcnt;
if($paper=="" || $sumcnt==""){
$query = "select count(*) as num from $table $where";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$sumcnt=$row["num"];
if( $sumcnt ==0){
nerror("この版にはニュースは掲載されていません!");
}
$paper=1;
}
$sumpaper=($sumcnt-$sumcnt%$ECHOCNT)/$ECHOCNT ;
if(($sumcnt%$ECHOCNT)!=0) $sumpaper+=1;
if($sumpaper==1 && $HALT==0) return($where);
$enwhere=base64_encode(base64_encode($ where) );
if(($LRLIST*2+1) < $sumpaper){
if(($paper-$LRLIST) < 2){
$tract=1;
$sub=$LRLIST*2 +1 ;
}else if(($paper+$LRLIST) >= $sumpaper){
$tract=$sumpaper-($LRLIST*2);
$sub=$sumpaper;
}else{
$tract= $paper -$LRLIST;
$sub=$paper+$LRLIST;
}
}else{
$tract=1;
$sub=$sumpaper;
}
$uppaper=$paper-1;
$downpaper=$paper+ 1;
$startcnt=($paper-1)*$ECHOCNT;
$where.=" 制限 ${ startcnt },${ ECHOCNT }";
if($tract > 1) { $splitstr=" 【 < ;< "; }
else $splitstr="【 << ";
for($i=$tract;$i<=$sub;$i++){
if ($i!=$paper ) splitstr.="".$i." ";
else $splitstr.="".$i." ";
}
if ($sub!=$sumpaper) $splitstr.=">> ]";
else $splitstr.=">> ] ";
return($where);
}
?>
ページング関数の使用方法
/*
#### ページング関数を取得####
Int $HALT - 検索結果のみ かどうか1ページ分割時にページ番号バー(1/0)を表示
Int $LRLIST - (ページ番号バーで表示されるページ番号 - 1)/2
Int $ECHOCNT - 分割時に各ページに表示されるレコード数取得
Int $paper - ページ数、プリフェッチ: $paper=$HTTP_GET_VARS[paper];
Varchar $table - データテーブル名、事前添付値: $table="db.table";
Varchar $ where - 取得条件、事前に添付された値: $where=" where field='value'";
Varchar $enwhere - 元の $where を Base64_encode() して 2 回実行し、GET メソッドで送信します
Varchar $splitstr - ページ番号bar は文字列を出力し、関数を実行すると対応する位置に配置されます echo $splitstr;
を実行します
関数を呼び出す前に変数を取得する必要があります -
$paper=$HTTP_GET_VARS[paper];
$sumcnt=$ HTTP_GET_VARS[sumcnt];
$enwhere=$HTTP_GET_VARS[enwhere];
Return (Var char $where) - ページング後の検索ステートメントの検索条件
注: この関数は、エラー処理関数 nerror($error) を呼び出す必要があります。 );
*/
?>
画像ファイルアップロード関数
//画像ファイルアップロード関数
function Upload_img($UploadFile,$UploadFile_name,$UploadFile_size,$UploadPath,$max_size=64){
/ /$TimeLimit=60; //タイムアウト制限を設定します。デフォルト時間は 30 秒で、時間制限はありません
//set_time_limit($TimeLimit)
if(($UploadFile!= "none" )&& ($UploadFile != "" )){
$FileName=$UploadPath.$UploadFile_name;
if($ UploadFile_size $FileSize="(string)$UploadFile_size" . "byte";
}elseif( $UploadFile_size <(1024 * $max_size)){
$FileSize=number_format((double)($ UploadFile_size / 1024), 1) . " KB";
}else{
nerror("ファイルが制限サイズを超えています。 ");
}
//{
//$FileSize="number_format((double)($UploadFile_size" / (1024 * 1024)), 1) . " MB";
// }
if(!file_exists( $FileName)){
if(copy($UploadFile,$FileName)){
return "$UploadFile_name ($FileSize)";
}else{
nerror("ファイル $UploadFile_name のアップロードに失敗しました!");
}
unlink ($UploadFile);
}else{
} nerror("ファイル $UploadFile_name は既に存在します!");
}