PHP 開発でよく使われる関数と知っておくべき関数のまとめ - 例付き
まとめてみましょう。この記事では、PHP プログラマーが開発中によく使用する PHP 関数をリストします。ほぼすべての機能にサンプルがあり、ベテランは復習として見ることができ、初心者は理論を覚えてから開発する前にサンプルを何度も入力することで、開発効率が確実に向上します。例のほとんどは、w3cschool の標準例とインターネット上のいくつかのリソースから引用されています。一部は個人によって作成され、テストされています。この記事を読み込む場合は、出典 http://blog.csdn.net/qq_22327455 も明記してください。
1. 関数のチェック
1. empty()
empty() 関数は、変数が設定されているかどうかをテストするために使用されます。変数がすでに存在するか、空でない文字列であるか、ゼロ以外の場合は false 値が返され、それ以外の場合は true 値が返されます。したがって、文字列の値が 0 の場合も true が返され、空の中でステートメントが実行されます。
empty() 関数は値が空かどうかを判断します
変数が存在しない場合は TRUE を返します
変数が存在し、その値が ""、0、"0"、NULL,,の場合FALSE、array()、var $var、および属性のないオブジェクトは、TURE
を返します。変数が存在し、値が ""、0、"0"、NULL、、、FALSE、array()、var $ でない場合は、 var; 属性オブジェクトがない場合は FALSE を返します。
empty() は変数のみを検出し、変数ではないものを検出すると解析エラーが発生します。つまり、次のステートメントは機能しません: empty(addslashes($name))。
2.isset()
isset() 関数は、通常、変数が設定されているかどうかを検出するために使用されます。
変数が存在しない場合は、FALSE を返します
変数が存在し、その値が NULL の場合は、FALSE を返します
変数が存在し、その値が NULL でない場合は、TRUE を返します
複数の変数を同時にチェックする場合、各単一項目が前の要件を満たしている場合にのみ TRUE が返され、それ以外の場合、結果は FALSE になります。
unset() を使用して変数を解放した後は、isset() ではなくなります。
$id 変数が検出された場合、$id=0 の場合、empty() と isset() を使用して、変数 $id が設定されているかどうかを確認します。両方とも異なる値を返します。empty() は、存在するとみなします。設定なし、isset() は $id の値を取得できます:
変数処理関数を使用する場合、変数の値が 0 である可能性がある場合、empty() を使用する場合は注意してください。それを置き換える方が賢明です。現時点ではisset付きです。
変数が 0 の場合、empty() は TRUE を返し、isset() は TRUE を返します。
変数が空の文字列の場合、empty() は TRUE を返し、isset() は TRUE を返します。 >変数が定義されていない場合、empty() は TRUE を返し、isset() は FLASE を返します。
3. 定数が存在するかどうかを確認します。定数が存在する場合は true を返し、そうでない場合は false を返します。
例
define("GREETING","Hello world!");
echo defined("GREETING"); //出力: 1
?>
4.is_int()
is_int() は、変数の型が整数型であるかどうかを判断します。
変数のタイプを決定する他の同様の関数: is_array() is_double() is_float() is_integer() is_long() is_object() is_real() is_string()
-------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --
2. 配列関数
1.array_keys()
array_keys() 定義: この関数は、配列内のすべてのキー名を含む新しい配列を返します。
array_keys() の場合:
$a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog");
print_r(array_keys($a)); //出力: Array ( [0] => a [1] => b [2] => c )
2.array_values()
array_values() 定義: この関数は、指定された配列内のすべてのキー値を含む配列を返しますが、キー名は保持しません。
array_values() の場合:
$a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog");
print_r(array_keys($a)); //出力: 配列 ( [0] => 馬 [1] => 猫 [2] => 犬 )
3.array_filter()
array_filter() 定義: この関数はコールバック関数を使用して配列内の要素をフィルター処理します。カスタム フィルター関数が true を返す場合、演算された配列の現在の値が返された結果配列に含まれ、結果が形成されます。新しい配列に。元の配列が連想配列の場合、キー名は変更されません。
array_filter() 構文: array_filter(array,function)
array_filter() ケース:
function test($v){
if($v === 'Cat'){
return true;
}
return false;
}
$a=array(0=>"犬",1=>"猫",2=>"馬");
print_r(array_filter($a,"test")); //出力: Array ( [1] => Cat )
4.array_slice() 定義: 関数は条件に応じて配列 A の値を返します。
array_slice() 構文: array_slice(array,offset,length,preserve)
パラメータの説明
offset: 必須。数値。取得する要素の開始位置を指定します。
正の値の場合は前から後ろに取り、負の値の場合は後ろから前にオフセット絶対値を取ります。
長さ: オプション。数値。返される配列の長さを指定します。
長さが正の場合、その要素数を返します。
長さが負の場合、シーケンスは配列の終わりからここまで離れたところで終了します。
省略した場合、シーケンスはオフセットから始まり、配列の最後まで進みます。
5.array_slice() の場合:
$a=array(0=>"犬",1=>"猫",2=>"馬",3=>" Bird",4=>"lili",5=>"james");
print_r(array_slice($a,0)); //出力: Array ( [0] => Dog [1] => 猫 [2] => 鳥 [5] => ジェームズ )
print_slice($a,0,2); /出力: Array ( [0] => Dog [1] => Cat )
print_r(array_slice($a,0,-2)); //出力: Array ( [0] => Dog [1] => 猫 [2] => 鳥 )
print_r($a,-2,-1); // 出力: 配列 ( [0] = > lili )
print_r(array_slice($a,-1,-2)); //出力: Array()
6.array_serch()
array_search() ) 配列内のキー値を検索します。値が見つかった場合は、一致する要素のキーが返されます。見つからない場合は false を返します。
$a=array("a"=>"犬","b"=>"猫","c"=>"馬");
echo array_search("Dog",$a); //出力:
?>
7.array_merge()
array_merge() 関数は 2 つ以上の配列を 1 つの配列にマージします。
例
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array ("c"=>"牛","b"=>"猫");
print_r(array_merge($a1,$a2)); //出力: Array ( [a] => 馬[b] => Cat [c] => Cow )
?>
8.array_combine()
array_combine() 関数は 2 つの配列を結合して新しい配列を作成します。配列はキー名で、もう一方の配列の値はキー値です。配列の 1 つが空である場合、または 2 つの配列の要素数が異なる場合、関数は false を返します。
例
$a1=array("a","b","c","d");
$a2=array("Cat" ,"Dog","Horse","Cow");
print_r(array_combine($a1,$a2)); //出力: Array ( [a] => Cat [b] => Dog [ c] => Horse [d] => Cow )
?>
9.is_array()
is_array は、変数の型が配列型であるかどうかを判断します。変数が配列型の場合は true を返し、それ以外の場合は false を返します。
10.in_array() in_array(value,array,type)
in_array() 関数は、配列内の指定された値を検索します。
指定された値 value が配列配列に存在する場合、true を返します。 3 番目のパラメーターが true に設定されている場合、関数は要素が配列内に存在し、指定された値と同じデータ型を持つ場合にのみ true を返します。
パラメータが配列内に見つからない場合、関数は false を返します。
$people = array("ピーター", "ジョー", "グレン", "クリーブランド", 23);
if (in_array(23,$people, TRUE)){
echo "一致が見つかりました< ;br />gt;";
}else{
echo "一致が見つかりません
";
}
?>
出力: 一致が見つかりました//データ型と指定された値はすべて同じです
if (in_array("23",$people, TRUE)){
echo "一致が見つかりました
";
}else{
echo "一致が見つかりません
";
}
出力: 一致が見つかりません//異なるデータ型、同じ指定値
11.count() sizeof()この関数は count() の Alias です。
count() 関数は、配列内のセルの数、またはオブジェクト内の属性の数をカウントします。配列の場合はその要素の数を返し、その他の値の場合は 1 を返します。引数が変数で、その変数が定義されていない場合は、0 が返されます。
$people = array("ピーター", "ジョー", "グレン", "クリーブランド");
$result = count($people);
echo $result ; //出力: 4
?>
12.array_push() array_push() 関数は、最初のパラメーター (プッシュ) の配列の末尾に 1 つ以上の要素を追加し、新しい配列の長さ。この関数は、$array[] = $value を複数回呼び出すことと同じです。
$arr = array();
$arr[]= 'john';
array_push($arr, 'jams','tome');
print_r ($arr); //出力: Array ( [0] => john [1] => jam [2] => tome )
?>
13.array_pop()
array_pop() 関数は、配列の最後の要素を削除します。
$a=array("Dog","Cat","Horse");
array_pop($a);
print_r($a);//出力: Array ( [0] => Dog [1] => Cat )
?>
14.array_unshift() array_unshift(array,value1,value2,value3...)
array_unshift() 関数は、配列の先頭に 1 つ以上の要素を挿入します。
$a=array("a"=>"猫","b"=>"犬");
array_unshift($a,"馬");
print_r($a);// 出力: Array ( [0] => Horse [a] => Cat [b] => Dog )
?>
15. array_shift()
array_shift() 関数は、配列の最初の要素を削除し、削除された要素の値を返します。
$a=array("a"=>"犬","b"=>"猫","c"=>"馬");
echo array_shift($a);
print_r ($a); //出力: Dog Array ( [b] => Cat [c] => Horse )
?>
16 .array_flip()
array_flip() 関数は、同じ値が複数回出現した場合、反転した配列を返します。最後のキー名がその値として使用され、他のキー名はすべて失われます。
元の配列の値のデータ型が文字列または整数ではない場合、関数はエラーを報告します。
$a=array(0=>"犬",1=>"猫",2=>"馬");
print_r(array_flip($a) ); //出力: Array ( [犬] => 0 [猫] => 1 [馬] => 2 )
?>
17.array_key_exists() array_key_exists(key) ,array)
array_key_exists() 関数は、指定されたキーが配列内に存在するかどうかを判断し、キーが存在する場合は true を返し、存在しない場合は false を返します。
$a=array("a"=>"犬","b"=>"猫");
if (array_key_exists("a",$a) ){
echo "キーが存在します!";
}else{
echo "キーが存在しません!";
}
18.array_reverse() array_reverse(array,preserve ) 保存はオプションです。元の配列キー名を保持するかどうかを指定します。可能な値: true と false。
$a=array("a"=>"犬","b"=>"猫","c"=>"馬");
print_r (array_reverse($a)); //出力: Array ( [c] => Horse [b] => Cat [a] => Dog )
?>
19. end()
end() 関数は、内部配列ポインタを最後の要素にポイントし、その要素の値を返します (成功した場合)。
$people = array("ピーター", "ジョー", "グレン", "クリーブランド");
echo current($people) "
";
echo end($people);
?>
出力:
ピーター
クリーブランド
20.current()
current()この関数は、配列内の現在の要素 (セル) を返します。
各配列には、その「現在の」要素を指す内部ポインタがあり、最初は配列に挿入された最初の要素を指します。
21.sort asort arsort ksort krsort
(1) sort()
sort() 関数は、指定された配列の値を昇順にソートします。注: この関数は、配列内のユニットに新しいキー名を割り当てます。元のキー名は削除されます。
$my_array = array("a" => "犬", "b" => "猫", "c" => "馬");
sort ($my_array);
print_r($my_array);//出力: Array ( [0] => Cat [1] => Dog [2] => Horse )
?>
(2)asort()
asort() 関数は配列をソートし、インデックス関係を維持します。主に、セルの順序が重要な連想配列の並べ替えに使用されます。
$my_array = array("a" => "犬", "b" => "猫", "c" => "馬");
asort ($my_array);
print_r($my_array); //出力: 配列 ( [b] => 猫 [a] => 犬 [c] => 馬 )
?> >
(3) arsort() 関数は配列を逆順にソートし、インデックス関係を維持します。主に、セルの順序が重要な連想配列の並べ替えに使用されます。
$my_array = array("a" => "犬", "b" => "猫", "c" => "馬");
arsort ($my_array);
print_r($my_array); //出力: 配列 ( [c] => Horse [a] => Dog [b] => Cat )
?>
(4)ksort()
ksort() 関数は、配列値の元のキーを保持しながら、キー名に従って配列を並べ替えます。
$my_array = array("a" => "犬", "b" => "猫", "c" => "馬");
ksort ($my_array);
print_r($my_array); //出力: Array ( [a] => Dog [b] => Cat [c] => Horse )
?>
(5) ksort() 関数は配列をキー名でソートし、配列値の元のキーを保持します。
$my_array = array("a" => "犬", "b" => "猫", "c" => "馬");
krsort ($my_array);
print_r($my_array); //出力: Array ( [c] => Horse [b] => Cat [a] => Dog )
?>
---------------------------------------------- --- --------------------------------------------------- ----------------------------------------------------
3. 文字列関数
1.strpos()
strpos() 関数は、別の文字列内で最初に出現する文字列の位置を返します。成功した場合は位置を返し、それ以外の場合は false を返します。
echo strpos("Hello world!","wo"); //出力: 6
?>
2.strrpos()
strrpos () 関数は、別の文字列内で最後に出現する文字列を検索します。成功した場合は位置を返し、それ以外の場合は false を返します。
echo strpos("Hello world!","wo"); //出力: 6
?>
3.strlen()
strlen () 関数は文字列の長さを返します。
echo strlen("Hello world!"); //出力: 12
?>
4.substr() インターセプト関数 substr(string,start, length)
substr() 関数は文字列の一部を返します。
具体的な使用法については例を参照してください:
$str = 'abcdefg';
echo substr($str,0).'
'; : abcdefg 説明: a の添字は 0 で、3 番目のパラメーターがないため、a からインターセプトを開始し、最後までインターセプトします。
echo substr($str,3).'
' / /出力: defg 説明: d の添字は 3 で、3 番目のパラメーターがないため、インターセプトは d から開始され、最後
echo substr($str,1,4).'
echo substr($str,-2) をインターセプトします。'
'; / /出力: fg 説明: g の位置は -1、f の位置は -2、3 番目のパラメーターがないため、インターセプトは f から始まり最後まで続きます。 $str,-5,-1 ).'
'; //出力: cdef 説明: c の位置は -5、g の位置は -1、インターセプトは -5 の位置から開始されます。 -1 より前の位置で終了します。つまり、 -1 の位置は含まれません。
echo substr($str,1,-2).'
'; //出力: bcde 説明: b の位置は -1、f の位置は -2、b はintercept, intercept f の前の点 (つまり、-2 の位置を除く)
?>
5.strstr() strstr(string,search)
strstr()関数は、別の文字列内で最初に出現する文字列を検索します。この関数は、文字列の残りの部分 (一致点から) を返します。検索された文字列が見つからない場合は false を返します。
echo strstr("Hello world!","o"); //出力: o world!
?>
この関数は大文字と小文字を区別します。大文字と小文字を区別しない検索の場合は、stristr() を使用します。
6.trim()
trim() 関数は、文字列の両端から空白文字やその他の事前定義された文字を削除します。
$str = " Hello World! ";
echo $str.'
';
echorim($str).'
';
//ソース コードを表示すると、次のようになります: Hello World!
Hello World!
?>
7. strtoupper()
strtoupper() 関数は文字列を大文字に変換します。
echo strtoupper("Hello WORLD!"); //出力: HELLO WORLD!
?>
8.strto lower
strto Lower() 関数文字列小文字に変換されます。
echo strto lower("Hello WORLD!"); //出力: hello world!
?>
9.ucfirst()
ucfirst()関数は、文字列の最初の文字を大文字に変換します。
echo ucfirst("hello world"); //出力: Hello world!
?>
10.ucwords()
ucwords() 関数文字列内の各単語の最初の文字を大文字に変換します。
echo ucfirst("hello world"); //输出:Hello World!
?>
11.strrev()
strrev() 函数反转字符串。
echo strrev("Hello World!"); //输出:!dlroW olleH
?>
12.round() ceil() intval() floor() 的用法
round() 函数对浮点数进行四舍五入。
ceil() 进一法取整
intval() 获取变量的整数值
echo round(0.60); //输出:1
echo round(0.49); //输出:0
echo ceil(3.33); //输出:4
echo ceil(3.9); //输出:4
echo intval(3.33);//输出:3
echo intval(3.9); //输出:3
?>
floor() PHP Math 函数
floor() 函数向下舍入为最接近的整数。返回不大于 x 的下一个整数,将 x 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。
具体看例子:
echo(floor(0.60)); //0
echo(floor(0.40)); //0
echo(floor(5)); //5
echo(floor(5.1)); //5
echo(floor(-5.1)); //-6
echo(floor(-5.9)) //-6
?>
13.implode()
implode() 函数把数组元素组合为一个字符串。
$arr = array('Hello','World!','Beautiful','Day!');
echo implode(" ",$arr); //输出:Hello World! Beautiful Day!
?>
14.explode()
explode() 函数把字符串分割为数组。
$str = "Hello world. It's a beautiful day.";
print_r (explode(" ",$str));
?>
输出:
Array(
[0] => Hello
[1] => world.
[2] => It's
[3] => a
[4] => beautiful
[5] => day.
)
15.str_pad()
str_pad() 函数把字符串填充为指定的长度。 str_pad(string,length,pad_string,pad_type)
string 必需。规定要填充的字符串。
length 必需。规定新字符串的长度。如果该值小于原始字符串的长度,则不进行任何操作。
pad_string 可选。规定供填充使用的字符串。默认是空白。
pad_type 可选。规定填充字符串的那边。可能的值:
STR_PAD_BOTH - 填充到字符串的两头。如果不是偶数,则右侧获得额外的填充。
STR_PAD_LEFT - 填充到字符串的左侧。
STR_PAD_RIGHT - 填充到字符串的右侧。这是默认的。
$str = "Hello World";
echo str_pad($str,20,"."); //输出:Hello World.........
?>
$str = "Hello World";
echo str_pad($str,20,".",STR_PAD_LEFT); //输出:.........Hello World
?>
16.strip_tags() strip_tags(string,allow) string 必需。规定要检查的字符串。allow 可选。规定允许的标签。这些标签不会被删除。
strip_tags() 函数剥去 HTML、XML 以及 PHP 的标签。
echo strip_tags("Hello world!",""); //输出:Hello world!
?>
17.htmlspecialchars() htmlspecialchars(string,quotestyle,character-set)
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号) 成为 &
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
string 必需。规定要转换的字符串。
quotestyle 可选。规定如何编码单引号和双引号。
ENT_COMPAT - 默认。仅编码双引号。
ENT_QUOTES - 编码双引号和单引号。
ENT_NOQUOTES - 不编码任何引号。
character-set 可选。字符串值,规定要使用的字符集。
$str = "John & 'Adams'";
echo htmlspecialchars($str, ENT_COMPAT);
echo "
";
echo htmlspecialchars($str, ENT_QUOTES);
echo "
";
echo htmlspecialchars($str, ENT_NOQUOTES);
?>
浏览器输出:
John & 'Adams'
John & 'Adams'
John & 'Adams'
如果在浏览器中查看源代码,会看到这些 HTML:
John & 'Adams'
John & 'Adams'
John & 'Adams'
18.htmlspecialchars_decode() htmlspecialchars_decode() 函数是 htmlspecialchars() 函数的反函数。
htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符。
会被解码的 HTML 实体是:
& 解码成 & (和号)
" 解码成 " (双引号)
' 解码成 ' (单引号)
< 解码成 < (小于)
> 解码成 > (大于)
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars_decode($str);
?>
浏览器输出:This is some bold text.
如果在浏览器中查看源代码,会看到这些 HTML:
This is some bold text.
-------------------------------------------------------------------------------------------------------------------------------------
四 Date / Time 函数
1.time()
time() 函数返回当前时间的 Unix 时间戳。
echo time(); //输出:1424937345
echo date('Y-m-d H:i:s',time());//输出:2015-02-26 15:55:32 // date()函数将时间戳转换为日期格式
?>
2.mktime() 语法:mktime(hour,minute,second,month,day,year,is_dst)
mktime() 函数返回一个日期的 Unix 时间戳。
echo(date("M-d-Y",mktime(0,0,0,12,36,2001))); //输出:Jan-05-2002
echo(date("M-d-Y",mktime(0,0,0,14,1,2001))); //输出:Feb-01-2002
echo(date("M-d-Y",mktime(0,0,0,1,1,2001))); //输出:Jan-01-2001
echo(date("M-d-Y",mktime(0,0,0,1,1,99))); //输出:Jan-01-1999
?>
3.microtime()
microtime() 函数返回当前 Unix 时间戳和微秒数。
echo microtime(); //输出:0.79456400 1424937755
?>
4.strtotime()
strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。
echo(strtotime("now"));
echo(strtotime("3 October 2005"));
echo(strtotime("+5 hours"));
echo(strtotime("+1 week"));
echo(strtotime("+1 week 3 days 7 hours 5 seconds"));
echo(strtotime("next Monday"));
echo(strtotime("last Sunday"));
?>
输出:
1138614504
1128290400
1138632504
1139219304
1139503709
1139180400
1138489200
5.date()
date() 函数格式化一个本地时间/日期。
echo date('Y-m-d H:i:s',time());//输出:2015-02-26 15:55:32
?>
6.date_default_timezone_set() 语法:date_default_timezone_set(timezone)
date_default_timezone_set() 函数设置用在脚本中所有日期/时间函数的默认时区。
设置中国时区
date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亚洲/上海
date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆”
date_default_timezone_set('Asia/Harbin');//其中'Asia/Harbin'为"亚洲/哈尔滨"
date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”
7.date_default_timezone_get()
date_default_timezone_get() 函数返回脚本中所有日期时间函数所使用的默认时区。
echo date_default_timezone_get(); //输出:Asia/Chongqing
?
8.usleep()
usleep() 函数延迟代码执行若干微秒。
echo date('h:i:s') . "
" //プログラムの実行を開始します
usleep(10000000) //10 秒遅延します。
echo date('h:i:s'); // プログラムの実行を再度開始します
?>
出力:
04:28:24
04:28:34
9. タイムスタンプを時刻に変換し、時刻をタイムスタンプに変換します
(1) UNIX タイムスタンプを日付に変換する関数を使用します: date()
例を見てください:
echo date("Y-m-d H:i:s", time());
echo date("Y-m-d H:i:s","1424937345");
?>
2. 関数を使用して日付を UNIX タイムスタンプに変換します: strtotime()
例:
echo strtotime('2010-03-24 08:15:42');
?>
10. 開発ケース
/*
次に、次の関数を実装する必要があります:
銀行クレジット カードの返済通知など: プログラムがユーザーをスキャンするときクレジット カードの返済が必要な場合は、テキスト メッセージを送信してユーザーに通知します。
しかし、ユーザーの迷惑を防ぐために、テキスト メッセージは日中 9:00 から 18:00 までしか送信できません。この機能を実装するにはどうすればよいですか?
*/
$y=date("Y",time());
$m=date("m",time());
$ d=date("d",time());
$start_time = mktime(9, 0, 0, $m, $d ,$y);
$end_time = mktime(18, 0, 0 , $m, $d ,$y);
$time = time();
if($time >= $start_time && $time //メッセージを送信... テキスト メッセージを送信するコードを記述します
}
?>
---------------- ----- -------------------------------------- ----- -------------------------------------- ----- ----
他の 5 つの関数
1.error_reporting(E_ALL)
すべてのエラーを報告する
2.file_exists(path)
file_exists () 関数はファイルまたはディレクトリが存在することを確認します。指定されたファイルまたはディレクトリが存在する場合は true を返し、存在しない場合は false を返します。
echo file_exists("test.txt");
?>
3.number_format()
number_format() 関数は、千単位のデジタル化によってフォーマットします。
echonumber_format("1000000"); //1,000,000
echonumber_format("1000000",2); //1,000,000.00
echonumber_format("1000000",2," ,","."); //1.000.000,00
?>
4.preg_replace()
mixed preg_replace (mixed $pattern ,mixed $replacement ,mixed $subject [ , int $limit = -1 [, int &$count ]] )
パターンに一致する主題の部分を検索し、置換に置き換えます。
この例では、余分な空白文字を削除します
$str = 'foo o';
$str = preg_replace('/ss+/', ' ', $str);
// は 'foo o'
echo に変更されます $str;
?>
5.dirname()
dirname() 関数はパスのディレクトリ部分を返します。
echo dirname("c:/testweb/home.php") //出力: c:/testweb
echo dirname("/testweb/home.php"); /出力: testweb
?>
6.__FILE__
__FILE__ 現在のパス + ファイル名を返します
7.dirname(__FILE__)
現在の PHP プログラムは完全なパスです(パス + ファイル名)
$the_full_name=__FILE__;
$the_dir=dirname(__FILE__);
echo $the_full_name ///home/data/demo/ に戻ります。 test/a .php
echo $the_dir; ///home/data/demo/test
?> に戻ります:
__FILE__ 現在のパス + ファイル名を返します
(__FILE__) 現在のファイルパスのパス部分を返します
dirname(dirname(__FILE__)); 取得されるのは、ファイルの上のディレクトリ名です (最後の "/" 記号は除きます)
例の場合、現在のファイルは /home /data/demo/test.php であり、
__FILE__ はフルパス、つまり /home/data/demo/test.php を取得し、
dirname(__FILE__) はパス部分、つまり /home/data/demo (その後に "/" 記号はありません)
8.$_SERVER['SCRIPT_FILENAME']
PHP との違い $_SERVER['SCRIPT_FILENAME '] と __FILE__:
通常、PHP $_SERVER[ 'SCRIPT_FILENAME'] と __FILE__ はどちらも PHP ファイルのフル パス (絶対パス) とファイル名を返します:
この 2 つの違いは次のとおりです: $_SERVER ['SCRIPT_FILENAME'] は現在実行中のプログラムの絶対パスとファイル名を反映します。__FILE__ は元のファイル (インクルード ファイル) の絶対パスとファイル名を反映します
9.$_SERVER['HTTP_HOST'] $_SERVER['PHP_SELF']
コマンドラインのアドレスが http://www.baidu.com/index.php
の場合:
$_SERVER['HTTP_HOST']==' www.baidu.com' //1 つはホスト アドレスです
$_SERVER[ 'PHP_SELF']=='/index.php' //スクリプト ファイルの絶対パス
10.error_log( )
error_log() 関数は、サーバーのエラー ログ、ファイル、またはリモート ターゲットにエラーを送信します。成功した場合は true を返し、そうでない場合は false を返します。
$test=2;
if ($test>1)
{
error_log("カスタム エラーが発生しました",
1 ,"[email protected]","From: [email protected]");
}
?>
出力:
カスタム エラーがトリガーされました
11. ini_set('display_errors', '1');
PHP ini_set は php.ini の値を設定するために使用されます。スクリプトが終了すると、設定は無効になります。 php.ini ファイルを開かずに設定を変更できるため、仮想空間では非常に便利です。
関数の形式: string ini_set(string $varname, string $newvalue)
共通設定:
@ ini_set('memory_limit', '64M');
'menory_limit': スクリプトを設定します。適用できるメモリ バイト数。不適切に作成されたスクリプトがサーバー上の利用可能なメモリを消費するのに役立ちます [email protected]
@ini_set('display_errors', 1);
'display_errors': カテゴリを設定しますエラーメッセージ。
ini_set("display_errors","On"); //すべてのエラー メッセージを表示します
ini_set("display_errors","Off"); //すべてのエラー メッセージを非表示にします
ここで説明する内容はい、通常、サーバー設定ファイルでは通知エラーがブロックされ、エラー エラーのみが表示されます。この場合、エラー表示をオンにすると、通知エラーは表示されなくなります。
12.json_decode( ) と json_encode()
最初に json_encode() を見てください
json_decode - JSON 形式の文字列をエンコードします JSON 形式の文字列を受け入れ、それを PHP 変数に変換します
json_decode($data) はオブジェクトを出力しますが、json_decode ( "$data",true) は、PHP 連想配列を生成します。
$json = '{"a":1,"b":2,"c":3," d": 4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
上記の例は出力します:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
[ "c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
配列(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int; 🎜>["d"] => int(4)
["e"] => int(5)
}
json_decode()
json_encode を見るエンコード変数
この関数は UTF-8 でエンコードされたデータのみを受け入れることができます
$arr = array ('a'=>1,'b'=>2 ,'c'= >3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
上記の例 このプロセスでは次のように出力されます。
{"a":1,"b":2,"c":3,"d":4,"e":5}
開発ケースを見てみましょう (ケースを削除):
(1) 削除ボタンを配置します:
Delete
(2) Ajax がプロセッサを指定してデータを渡す
<script><br> 関数del(cid,b_id){<br> if(confirm("削除してもよろしいですか")){<br> dataType: "json ",<br> url:"/demo/デル"、<br>データ:{<su> "c_id":cid、<br> "b_id":b_id<br>}、<br>success:function(msg; msg; lindg.location.reload(); info);<br>><br> 、処理結果が返されます$ resに。 <br>if($res){<br> die(json_encode(array("rs"=>'success',"info"=>"削除に成功しました"))); //json_encode() は変数に対して実行されます。 JSON エンコード<br>}else{<br> die(json_encode(array("rs"=>'fail',"info"=>'削除に失敗しました')));<br>} <br><br><br>13.urlencode() と urldecode()<br>これらは、Web ページの URL エンコードとデコードの問題を解決するために使用され、中国語を含む URL を使用できるようになります。 <br><?php <br>$str = 'I';<br>$str1 = urlencode($str);<br>$str2 = urldecode($str1);<br>echo $str1;出力: I //Encode<br>echo $str2; //出力: I //Decode<br>?><br><br>14.sprintf()<br>sprintf() 関数はフォーマットされた文字を変換します。文字列を変数に入れます。 <br><?php<br>$transAmt=10000000;<br>$transAmt = sprintf('%.2f',$transAmt);<br>echo $transAmt; //出力: 10000000.00<br>?> ;<br><br>15.fopen() fwrite() fclose の使用法<br>まず例を見てみましょう:<br><?php<br>$path = dirname(__FILE__);<br>$ paths = $path.'/a.txt';<br>$content = 'test';<br>$handle = fopen($paths,'w+');<br>fwrite($handle, $content); <br>fclose($handle);<br>?><br>一度実行しますが、$path パスに a.txt ファイルが存在しない場合は、a.txt ファイルが作成されます。ファイルの内容を変更して書き込みを再開します。実行するたびに、元の a.txt 内のデータはクリアされ、再度書き込まれます。 <br>メソッドを追加したい場合、つまり内容が不明瞭な場合は、追加を続けます。a を使用できます。つまり、$handle = fopen($paths,'a');<br>"r"読み取り専用モードで開き、ファイル ポインターをファイル ヘッダーを指すように変更します。 <br>「r+」 読み取りおよび書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントします。 <br>"w" 書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。 <br>"w+" 読み取りおよび書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。 <br>"a" 書き込みモードで開き、ファイル ポインタをファイルの末尾に指します。ファイルが存在しない場合は、作成してみてください。 <br>"a+" 読み取り/書き込みモードで開き、ファイル ポインターをファイルの末尾に指します。ファイルが存在しない場合は、作成してみてください。 <br>"x" <br>作成して書き込み用に開き、ファイル ポインターをファイル ヘッダーにポイントします。ファイルが既に存在する場合、 fopen() 呼び出しは失敗し、FALSE を返し、E_WARNING レベルのエラー メッセージを生成します。ファイルが存在しない場合は、作成してみてください。 <br>これは、基礎となる open(2) システム コールに O_EXCL|O_CREAT フラグを指定するのと同じです。 <br>このオプションは PHP 4.3.2 以降のバージョンでサポートされており、ローカル ファイルにのみ使用できます。 <br>"x+" <br>ファイル ポインタをファイル ヘッダーに指定して、読み取り/書き込みモードで作成して開きます。ファイルが既に存在する場合、 fopen() 呼び出しは失敗し、FALSE を返し、E_WARNING レベルのエラー メッセージを生成します。ファイルが存在しない場合は、作成してみてください。 <br>これは、基礎となる open(2) システム コールに O_EXCL|O_CREAT フラグを指定するのと同じです。 <br>このオプションは PHP 4.3.2 以降のバージョンでサポートされており、ローカル ファイルにのみ使用できます。 <br><br>12. file_put_contents() と file_get_contents() の使用法 <br>file_put_contents() 関数は、文字列をファイルに書き込みます。 fopen()、fwrite()、fclose() を順番に呼び出すのと同じ関数。この関数は、ファイルに書き込まれたデータのバイト数を返します<br><?php<br>$path = dirname(__FILE__);<br>$paths = $path.'/a.txt';<br>$content = 'test';<br>//$handle = fopen($paths,'w+');<br>//fwrite($handle, $content);<br>//fclose($handle) ;<br>echo file_put_contents($paths,$content);//出力: 30<br><br>$arr = array('a'=>1,'b'=>2);<br> file_put_contents($paths,var_export($arr,true));<br>?><br><br>file_get_contents() 関数は、ファイル全体を文字列に読み取ります。 <br><?php<br>header('Content-type:text/html;charset=utf-8');<br>$path = dirname(__FILE__);<br>$paths = $path.' /a.txt';<br>$content = 'test';<br>file_put_contents($paths,$content);<br>$str = file_get_contents($paths);<br>echo $str; : Test<br>?><br><br>16.flock()<br>flock() 関数は、ファイルをロックまたは解放します。成功した場合は true を返します。失敗した場合は false を返します。 <br>flock(file,lock,block)<br>ファイル 必須。開いているファイルをロックまたは解放するように指定します。 flock() で使用されるファイルは、開いているファイル ポインターである必要があります。 <br>ロックが必要です。使用するロックのタイプを指定します。 <br>ブロックはオプションです。1 または true に設定すると、ロック中に他のプロセスがブロックされます。 <br>共有ロック (プログラムの読み取り) を取得するには、ロックを LOCK_SH に設定します (PHP 4.0.1 より前のバージョンでは 1 に設定)。 <br>排他ロックを取得するには (プログラムの書き込み)、ロックを LOCK_EX に設定します (PHP 4.0.1 より前のバージョンでは 2 に設定)。 <br>ロック (共有または排他) を解放するには、ロックを LOCK_UN に設定します (PHP 4.0.1 より前のバージョンでは 3 に設定)。 <br>flock() がロック時にブロックしないようにするには、ロックに LOCK_NB を追加します (PHP 4.0.1 より前のバージョンでは 4 に設定)。 <br><?php<br>$file = fopen("test.txt","w+"); //オープン<br>// 排他ロック<br>if (flock($file,LOCK_EX )){ // ロック後<br> fwrite($file,"Write something") // コンテンツを書き込みます<br> // ロックを解除します<br> flock($file,LOCK_UN) // 次にロックを解除します<br>}else{ <br> echo "ファイルのロック中にエラーが発生しました!";<br>}<br><br>fclose($file); //Close<br>?><br><br>17.unlink( ) unlink(filename) ,context)<br>unlink() 関数はファイルを削除します。成功した場合は true、失敗した場合は false を返します。 <br><?php<br>$file = "test.txt";<br>if (!unlink($file)){<br> echo ("操作エラー");<br>}else{<br> echo ("削除に成功しました");<br>}<br>?><br><br>18.unset() <br>unset -- 指定された変数を解放します PHP 4 では、unset() は廃止されました実際には関数であり、ステートメントになりました。戻り値がないため、unset() の戻り値を取得しようとすると解析エラーが発生します。 <br><?php<br>$arr = array(<br> 'a'=>1,<br> 'b'=>2,<br> 'c'=>3<br> );<br>unset($arr['b']);<br>echo '<pre class="brush:php;toolbar:false">';print_r($arr);<br>?><br>出力: <br>配列<br>(<br> [a] => 1<br> [c] => 3<br>)<br><br>19.var_export()<br>var_export — 変数の文字列を出力または返す<br>この関数は、関数に渡された変数に関する構造情報を返します。返される表現が正当な PHP コードである点を除けば、var_dump() と似ています。関数の 2 番目の引数を TRUE に設定することで、変数の表現を返すことができます。 <br><?php<br>$arr = array(<br> 'a'=>1,<br> 'b'=>2,<br> 'c'=>3<br> );<br>var_dump($arr); //出力: array(3) { ["a"]=> int(2) ["c"]= > int(3) }<br>var_export($arr); //出力: 配列 ( 'a' => 1, 'b' => 2, 'c' => 3, ) <br>$v = var_export($arr,TRUE); //2 番目のパラメータは TRUE に設定され、変数の表現が返されます<br>echo $v; //出力配列 ( 'a' => 1) , ' b' => 2, 'c' => 3, )<br>?><br><br>20.serialize() <br>serialize — 保存可能なオブジェクトの表現を生成するvalue Serialize() は、値を表すバイト ストリームを含む文字列を返し、どこにでも保存できます。これにより、型や構造を失うことなく、PHP 値の保存や受け渡しが容易になります。 <br>unserialize — 保存された表現から PHP 値を作成します。シリアル化された文字列を PHP 値に変換するには、unserialize() を使用します。 <br>例を見てください:<br><?php<br>$str = 'abcdefg';<br>$str1 = Serialize($str);<br>$str2 = unserialize($str1);<br>echo $str1; //出力: s:7:"abcdefg";<br>echo $str2; //出力: abcdefg<br><br>$arr = array(<br> 'a'=> 1 ,<br> 'b'=>2,<br> 'c'=>3<br>);<br>$string = Serialize($arr);<br>$arr2 = unserialize($string) ) ;<br>echo $string; //出力: a:3:{s:1:"a";i:1;s:1:"b";i:2;s:1:"c"; i :3;}<br>print_r($arr2); //出力: Array ( [a] => 1 [b] => 2 [c] => 3 )<br>?><br> <br><br>21.rand() <br>rand() 関数はランダムな整数を返します。 <br><?php <br>echo rand(0,100); // 0 ~ 100 のランダムな整数を出力します<br>?><br><br>22.preg_match()<br>http://開発者 .51cto.com/art/200911/165362.htm<br><br>$num = $this->gt;input->post('buy_num');<br>$preg = '/^[1- 9 ][0-9]*$/';<br>if(!preg_match($preg, $ct_id) || !preg_match($preg, $num)){<br> echo '<script type= text /javascript">alert("パラメータエラー!");history.back();</script>';
die();
}
23.str_replace()
str_replace () 関数は、文字列を使用して文字列内の他の文字を置き換えます。
echo str_replace("world","John","Hello world!"); //出力: Hello John!
?>
$str = '123456789';
$new_str = str_replace("'","",$str);
echo $new_str;//出力 123456789 //' を空の
?> に置き換えます。
24.preg_match()
php の preg_match() 関数は、正規表現を実行するためによく使用される関数です
例 1:
開発中と同様にモバイルかどうかを判断します式によって送信された電話番号が要件を満たしているため、それを使用して
if(!preg_match("/^1[3578][0-9]{9}$/ ", $_POST['phone_tel'])){
$this->show_warning('phone_error');
return;
}
?>
例 2:
決定メールアドレスかどうか
if(!preg_match('/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/', $ _POST ['email'])){
echo "<script>alert('Email format error');location.href='/xxx'</script>";
}
25.curl_init() url_init -- CURL セッションを初期化します
curl_init() 関数は新しいセッションを初期化し、curl_setopt()、curl_exec()、およびcurl_close() 関数で使用する CURL ハンドルを返します。オプションのパラメータが指定されている場合、CURLOPT_URL オプションはこのパラメータの値に設定されます。これは、curl_setopt() 関数を使用して手動で設定できます。
$ch =curl_init();
curl_setopt ($ch, CURLOPT_URL, "Web サイトのアドレス");
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);
?>
public function request_by_curl($remote_server, $post_array)
{
$ch =curl_init();
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $remote_server);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);
$result =curl_exec($ch);
if (curl_errno($ch)) > echo 'Errno'.curl_error($ch);//例外をキャッチ
exit;
//print_r(curl_getinfo($ch));
}
curl_close($ch);
return $result;
}
?>