PHP

[PHP]ディレクトリを沢山作る

mkDir('/home/users/2/web/blog/log/2012/10/09',0777,true);

もしくは

$targetDir=’/home/users/2/web/blog/log/2012/10/09′;
$baseDir=’log’;
とすると
/home/users/2/web/blog/log/2012
/home/users/2/web/blog/log/2012/10
/home/users/2/web/blog/log/2012/10/09
をmkdirする

function mkDirs($targetDir,$baseDir){
    $tmp=explode('/', $targetDir);
    $tmpDir='';
    $mkflg=false;
    $failedDir='';
    foreach ($tmp as $key => $v) {
    	$tmpDir.=$v.'/';
    	if(!$mkflg && $v===$baseDir){
    		$mkflg=true;
    		continue;
    	}
    	if( $mkflg && !file_exists($tmpDir) ){
    		if( !mkdir($tmpDir,0777) ){
		      $failedDir=$tmpDir;
    		      break;
    		}
    	}
    }
    return $failedDir;
}

[PHP x SQLite3]PHPでSQLite3 #5データ更新(UPDATE)

PHPでSQLite3 #5データ更新(UPDATE)

$sql="SELECT id,cnt FROM $tableName WHERE id='{$id}'";
$result=$db->query($sql);
$row = $result->fetchArray();
$id=$row['id'];
$cnt=$row['cnt']+1;

$sql="UPDATE $tableName SET cnt = $cnt WHERE id = $id";
$result=$db->query($sql);

[PHP x SQLite3]PHPでSQLite3 #3データ取得(SELECT)

PHPでSQLite3 #3データ取得(SELECT)

$tableName="access";
$sql="SELECT id,name,cnt FROM $tableName WHERE name='{$name}' ORDER BY cnt ASC";
$result=$db->query($sql);
$tmp=[];
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
	$tmp[]=$row;
}
echo json_encode($tmp);
$db->close();

データ重複しないように取得

$sql="SELECT DISTINCT name FROM $tableName";
$result=$db->query($sql);
if($result===FALSE){
	$db->close();
	echo $message;
	exit;
}
$tmp=[];
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
	$value=$row['name'];
	$tmp[]=$value;
}
echo json_encode($tmp);

[PHP x SQLite3]PHPでSQLite3 #2テーブル作成

PHPでSQLite3 #2テーブル作成

$tableName="access";
$sql="create table if not exists $tableName (id INTEGER PRIMARY KEY AUTOINCREMENT, name varchar(6), title text, cnt int)";
$result=$db->query($sql);
if ($result===FALSE) {
	$db->close();
	echo $message;
	exit;
}
$db->close();

[PHP]substr

substr

$str='abcd';
echo substr($str,1,2);

結果

bc

$str='abcd';
echo substr($str,0,-1);

結果

abc

$str='abcd';
echo substr($str,-1);

結果

d

[PHP]ファイルアップロードの設定

formでファイルをアップロードするときのファイルサイズの設定は2ヶ所
・upload_max_filesize
・post_max_size
upload_max_filesizeの値以上の容量のファイルをアップするとエラーになる。
post_max_sizeの値以上の容量のファイルをアップすると、おかしな動きをしてエラーを検知出来ない。

参考
PHP: エラーメッセージの説明 – Manual
http://php.net/manual/ja/features.file-upload.errors.php