関数
/** * 比較文字1と比較文字2の一致率が許可一致率を超える場合、trueを返す。 * * 比較文字2は配列で渡すこともできる。 * 配列にした場合、配列内いずれかが許可一致率を超えるとき、trueを返す。 * * @param string $tarStr 比較文字1 * @param multi $comps 比較文字2、配列指定も可。 * @param bool $permitPar 許可一致率 */ function similar_text_ex($tarStr,$comps,$permitPar){ $flg=false; $percent=0; if(is_array($comps)){ foreach($comps as $comp){ similar_text($tarStr,$comp,$percent);//一致率 if($percent >=$permitPar){ $flg=true; break; } } }else{ similar_text($tarStr,$comps,$percent); if($percent >=$permitPar){ $flg=true; } } return $flg; }
//70%以上一致する場合、true。 $res=similar_text_ex('五月雨をあつめて早し最上川','12月雨を集めて早し最上川',70); echo $res;// ←true or false
//リストのいずれかに90%以上一致する場合、true。 $res=similar_text_ex('五月雨をあつめて早し最上川', array('雨を集めて信濃川','五月雨をあつめて早し四万十川','十二月雨をあつめて遅し最上川'), 90); echo $res;// ←true or false
source code
$str="いろはにほへと"; echo mb_substr($str ,0 ,1);// 出力 → い
先頭から2文字取得する場合
$str="いろはにほへと"; echo mb_substr($str ,0 ,2);// 出力 → いろ
source code
$str="いろはにほへと"; echo mb_substr($str, -1);// 出力 → と
末尾から2文字取得する場合
$str="いろはにほへと"; echo mb_substr($str, -2);// 出力 → へと
関数
/** *日付が8桁数値表記であればy/m/d形式に変換する * 例 20121212→ 2012/12/12 * * 1970/1/1 から 2038/1/19に対応。対応範囲外である場合は 1970/1/1 になる。 * * @param $d 8桁数値表記の日付 * @return y/m/d形式の日付(8桁数値でないなら未変換) */ function conv8ToDate($d){ if(preg_match("/^[0-9]+$/", $d)){ $d=date("Y/m/d",strtotime($d)); } return $d; } ?>
使用例
$test = '20380119'; $test2 = conv8ToDate($test); echo '<br>変換前→'.$test; echo '<br>変換後→'.$test2; //出力 //変換前→20380119 //変換後→2038/01/19
Fatal error: Maximum execution time of 30 seconds exceededphp.iniで最大実行時間を増やすことができる。
max_execution_time=30120秒に変更する
max_execution_time=120変更後はApacheを再起動すること。
set_time_limit(600); // 最大処理時間を600秒にする。
session.gc_maxlifetime = 86400
session.cookie_lifetime = 86400
Warning: session_start(): Cannot start session when headers already sent in ...原因:session_start()が実行される前にechoなどの出力が発生すると、この警告が出る。
ob_start(); include '../../../../wp-load.php'; // 注意:wp-load.phpは$_POSTの値をサニタイズしてしまう。サニタイズされると$_POSTに格納されているjson文字列がパースできなくなるので注意。 global $wpdb; ob_end_clean(); session_start();
$ary=array( 0=>'neko', 1=>'yagi', 2=>'kani', 'same'=>'サメ', ); $map=array_flip($ary); Debugger::dump($map);$mapの出力。 キーと値が逆転している。
array( 'neko' => (int) 0, 'yagi' => (int) 1, 'kani' => (int) 2, 'サメ' => 'same' )
echo time();出力例
1456982682
echo microtime(true);//出力例→ 1456983058.4316
echo microtime();//出力例→ 0.43157200 1456983058
echo time();出力例→ 1456983058
$name="wani"; $res = ( $name == "tokage" ) ? 1 : 0; echo $res;上の1行IF文は以下のif文と同じ意味を持つ。
$name="wani"; $res=null; if($name=='tokage'){ $res=1; }else{ $res=0; } echo $res;
よく使うIF文
配列に値がセットされているなら値を取得する。$xxx = (empty($ent['xxx'])) ? null : $ent['xxx'];
/** * キャメルケースにスネークケースから変換する * * 先頭も大文字になる。 * * @param string $str スネークケースの文字列 * @return キャメルケースの文字列 */ function camelize($str) { $str = strtr($str, '_', ' '); $str = ucwords($str); return str_replace(' ', '', $str); }
/** * スネークケースにキャメルケースから変換 * @param string $str キャメルケース * @return string スネークケース */ function snakize($str) { $str = preg_replace('/[A-Z]/', '_\0', $str); $str = strtolower($str); return ltrim($str, '_'); }
<?php
$data = array(
'neko',
'big_dog',
'RedFox',
'greenTanuki',
'big_last_pig_master',
'SmallFirstPigMaster',
'smallFirstPigMaster',
'',
'あいう',
'123'
);
echo "<table class='tbl2'><thead><tr><th>元文字</th><th>ローワーキャメルケース</th></tr></thead><tbody>";
foreach($data as $str){
$lc_str = lowerCamelize($str);
echo "<tr><td>{$str}</td><td>{$lc_str}</td></tr>";
}
echo "</tbody></table>";
/**
* ローワーキャメルケースに変換する
*
* @note
* ローワーキャメルケースは先頭の一文字が小文字のキャメルケース。
*
* @param string $str スネーク記法、またはキャメル記法の文字列
* @return string ローワーキャメルケースの文字列
*/
function lowerCamelize($str){
if(empty($str)) return $str;
// 先頭の一文字が小文字である場合、一旦キャメルケースに変換する。
$h_str = substr($str,0,1);
if(ctype_lower($h_str)){
// キャメルケースに変換する
$str = strtr($str, '_', ' ');
$str = ucwords($str);
$str = str_replace(' ', '', $str);
}
// 先頭の一文字を小文字に変換する。
$str = lcfirst($str);
return $str;
}
?>
出力
元文字 | ローワーキャメルケース |
---|---|
neko | neko |
big_dog | bigDog |
RedFox | redFox |
greenTanuki | greenTanuki |
big_last_pig_master | bigLastPigMaster |
SmallFirstPigMaster | smallFirstPigMaster |
smallFirstPigMaster | smallFirstPigMaster |
あいう | あいう |
123 | 123 |
/**
* テーブル名からモデル名に変換する
*
* @param string $tblName テーブル名(例:big_animals)
* @return モデル名(例:BigAnimal)
*/
function convModelName($tblName) {
$tblName = strtr($tblName, '_', ' ');
$tblName = ucwords($tblName);
// 末尾が"s"であるなら削る
if(mb_substr($tblName,-1) == 's'){
$tblName=mb_substr($tblName,0,mb_strlen($tblName)-1);
}
return str_replace(' ', '', $tblName);
}