Monthly Archives: 9月 2016

「php開発」ページング機能処理を実現するサンプルコード

phpコード:
$pagesize=10;
$url=$_SERVER[“REQUEST_URI”];
$url=parse_url($url);
$url=$url[path];
$numq=mysql_query(“SELECT * FROM `tgsinstbl`”);
$num = mysql_num_rows($numq);

if($_GET[page]){
$pageval=$_GET[page];
$page=($pageval-1)*$pagesize;
$page.=’,’;
}
if($num > $pagesize){
if($pageval<=1)$pageval=1;
echo “計 $num 件”.
” <a href=$url?page=”.($pageval-1).”>前へ</a> <a href=$url?page=”.($pageval+1).”>次へ</a>”;
}
echo $SQL=”SELECT * FROM `tgsinstbl` limit $page $pagesize “;
$query=mysql_query($SQL);
while($row=mysql_fetch_array($query)){

echo “<hr><b>”.$row[name].” | “.$row[sex];

}

php入門–ignore_user_abort()とset_time_limit()の使い方

ignore_user_abort
クライアントの接続が切断された際にスクリプトの実行を終了するかどうかを設定する
int ignore_user_abort ([ string $value ] )

set_time_limit
実行時間の最大値を制限する
bool set_time_limit ( int $seconds )

サンプルコード
<?php
// Ignore user aborts and allow the script
// to run forever
ignore_user_abort (true);
set_time_limit (0);
echo ‘Testing connection handling in PHP’ ;
// Run a pointless loop that sometime
// hopefully will make us click away from
// page or click the “Stop” button.
while(1)
{
// Did the connection fail?
if( connection_status () != CONNECTION_NORMAL )
{
break;
}
// Sleep for 10 seconds
sleep (10);
}
// If this is reached, then the ‘break’
// was triggered from inside the while loop
// So here we can log, or perform any other tasks
// we need without actually being dependent on the
// browser.
?>

phpコード:
<?php
ignore_user_abort ( TRUE );
set_time_limit ( 0 );
$interval = 10;
$stop = 1;
do {
if( $stop == 10 ) break;
file_put_contents(‘startnews24test.php’,’ Current Time: ‘.time().’ Stop: ‘.$stop);
$stop++;
sleep ( $interval );
} while ( true );
?>

phpでLogログを出力する方法

phpコード
<?php

$logfile = “tewf_2016.log”;
$timezone = “+0100”; /* Timezone correction */
$lookup_size = true;
$document_root = “/usr/local/apache/share/htdocs”;

function writelog($str) {
if($fd = @fopen($GLOBALS[ “logfile”], “a”)) {
fputs($fd, $str);
fclose($fd);
}
}

function getvarinfo($name,$default) {
if($var = getenv($name)) {
return $var;
} else {
return $default;
}
}

if($remote_host = getvarinfo( “REMOTE_HOST”, false)) {
$remote_host = getvarinfo( “REMOTE_ADDR”, “-“);
}
$remote_user = getvarinfo( “REMOTE_USER”, “-“);
$remote_ident = getvarinfo( “REMOTE_IDENT”, “-“);
$server_port = getvarinfo( “SERVER_PORT”, 80);
if($server_port!=80) {
$server_port = “:” . $server_port;
} else {
$server_port = “”;
}
$server_name = getvarinfo( “SERVER_NAME”, “-“);
$request_method = getvarinfo( “REQUEST_METHOD”, “GET”);
$request_uri = getvarinfo( “REQUEST_URI”, “”);
$user_agent = getvarinfo( “HTTP_USER_AGENT”, “”);
if($lookup_size == true && $document_root) {
$filename = ereg_replace( “\?.*”, “”, $request_uri);
$filename = “$document_root$filename”;
if(!$size = filesize($filename)) {
$size = 0;
}
} else {
$size = 0;
}

$date = gmdate( “d/M/Y:H:I:s”);
$log = “$remote_host $remote_ident $remote_user [$date $timezone] \””.
“$request_method http://$server_name$server_port$request_uri\” 200 $size\n”;

writelog($log);

phpでメールアドレスと日付をチェックする方法

参考コード:
function mailCheck(valpp) {
if (valpp != “” ){
if (!valpp.match(/^[0-9A-Za-z._¥-]+@[0-9A-Za-z.¥-]+$/)){
return false;
} else {
return true;
}
} else {
return true;
}
}

function dateCheck(valpp) {
if (valpp != “” ){
if ( valpp.length != 10 )
return false;
if (!valpp.match(/^([1-9][0-9]{3})\/(0[1-9]{1}|1[0-2]{1})\/(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1})$/)){
return false;
} else {
return true;
}
} else {
return true;
}
}

「php開発」正しいURLかどうかチェックするコード

phpコード:
function url_Validate(p) {
var regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
return regexp.test(p);
}
if (document.getElementById(“url”).value.length >100) {
alert(“URLは100字以内で入力してください。”);
docuemnt.getElementById(“url”).focus();
return false;
} else if (document.getElementById(“url”).value != “”) {
if (!url_Validate(document.getElementById(“url”).value)) {
alert(“URLを正しく入力してください。”);
document.getElementById(“url”).focus();
return false;
}
}
htmlコード
<input class=”inputText” name=”url” id=”url” value=”” maxlength=”100″>

「PHP開発」文字列をエスケープescape・アンエスケープunescape方法

1.escape定義関数
function escape($string, $in_encoding = ‘UTF-8’,$out_encoding = ‘UCS-2’) {
$strEscape= ”;
if (function_exists(‘mb_get_info’)) {
for($x = 0; $x < mb_strlen ( $string, $in_encoding ); $x ++) {
$str = mb_substr ( $string, $x, 1, $in_encoding );
if (strlen ( $str ) > 1) {
$strEscape.= ‘%u’ . strtoupper ( bin2hex ( mb_convert_encoding ( $str, $out_encoding, $in_encoding ) ) );
} else {
$strEscape.= ‘%’ . strtoupper ( bin2hex ( $str ) );
}
}
}
return $strEscape;
}

2.unescape定義関数
function unescape($str)
{
$ret = ”;
$len = strlen($str);
for ($i = 0; $i < $len; $i ++)
{
if ($str[$i] == ‘%’ && $str[$i + 1] == ‘u’)
{
$val = hexdec(substr($str, $i + 2, 4));
if ($val < 0x7f)
$ret .= chr($val);
else
if ($val < 0x800)
$ret .= chr(0xc0 | ($val >> 6)) .
chr(0x80 | ($val & 0x3f));
else
$ret .= chr(0xe0 | ($val >> 12)) .
chr(0x80 | (($val >> 6) & 0x3f)) .
chr(0x80 | ($val & 0x3f));
$i += 5;
} else
if ($str[$i] == ‘%’)
{
$ret .= urldecode(substr($str, $i, 3));
$i += 2;
} else
$ret .= $str[$i];
}
return $ret;
}

php入門–array_walk_recursiveの使い方

array_walk_recursive — 配列の全ての要素に、ユーザー関数を再帰的に適用する

phpコード:
$arr = array(
‘name’=>’tom’,
‘age’=>’26’,
‘update’=>’1000167282’,

);

function arrsearch(&$item,$key)
{
if($key == ‘update’)
{
$item = date(‘Y-m-d’,$item);
}
}
array_walk_recursive($arr,”arrsearch”);
print_r($arr);

実行結果
Array ( [name] => tom [age] => 26 [update] => 2001-09-11 )

php開発–文字列(配列)のエスケープ処理サンプル

function toEscape($array) {
$tmp = array ();
foreach ( $array as $key => $value )
$tmp [$key] = str_replace ( “‘”, “””, $value );
return $tmp;
}
function toEscape2($value) {
return “‘” . str_replace ( “‘”, “””, $value ) . “‘”;
}

C#で正規表現を使ってフォーマットをチェックする方法

1.パスワードをチェック
Regex.Ismatch(str_password,@”[A-Za-z]+[0-9]”);

2.小数点2桁をチェック
Regex.Ismatch(str_decimal,@”^[0-9]+\.[0-9]{2}$”);

3.数値をチェック
Regex.Ismatch(str_number,@”^[0-9]*$”);

4.パスワードの長さをチェック
Regex.Ismatch(str_Length,@”^\d{6-18}$”);

5.大文字をチェック
Regex.Ismatch(str_UpChar,@”^\[A-Z]+$”);

6.小文字をチェック
Regex.Ismatch(str_UpChar,@”^\[a-z]+$”);

7.文字列を分割
String[] _str=Regex.Split(txtSplit.Text,”[1-9]”);

8.文字入力チェック
Regex.IsMatch(str_letter,@”^[A-Za-z]+$”);

9.文字列入力チェック
Regex.IsMatch(str_Length,@”^[.{8,}$”);

10.Emailチェック
Regex.IsMatch(str_Email,
@”^(([\w\.]+)@(([[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|((\w+\.?)+)@([a-zA-Z]{2,4}|[0-9]{1,3})(\.[a-zA-Z]{2,4}))$”);

11.IPアドレスチェック
Public bool IPCheck(string IP)
{
String num=@”(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)”;
return Regex.IsMatch(IP,(“^”+num+”\\.”+num+”\\.”+num+”$”));
}

12.URLチェック
Regex.IsMatch(str_url,@”http(s)?//([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?”);

php開発–ajaxによるリクエスト通信かどうか判定するサンプルコード

PHPコード
if(isset($_SERVER[“HTTP_X_REQUESTED_WITH”]) && strtolower($_SERVER[“HTTP_X_REQUESTED_WITH”])==”xmlhttprequest”){
//ajaxリクエスト
}else{
// 普通リクエスト
};
JavaScriptでajax通信をリクエストする際にヘッダに下記情報を追加
var xmlobj=new XMLHttpRequest();
xmlobj.open(“GET”,”ctnsample.php”,true);
xmlobj.setRequestHeader(“X-Requested-With”,”XMLHttpRequest”);
xmlobj.send();

1 / 712345...最後 »