ホームページ >バックエンド開発 >PHPチュートリアル >一般的な PHP ライブラリ関数の紹介 + よくある質問への回答

一般的な PHP ライブラリ関数の紹介 + よくある質問への回答

WBOY
WBOYオリジナル
2016-06-23 14:37:561383ブラウズ

最近PHPを一生懸命勉強していますが、PHPは全体的な機能ではJavaほど強力ではありませんが、JavaはPHPよりも重いため、中小規模のシステムの開発ではPHPを使用する傾向があります。たとえ大規模な Web サイトであっても、これを止めることはできません。たとえば、Taobao では部分的に PHP (Java バックグラウンド ロジック + PHP フロントエンド ディスプレイ) も使用されているため、すぐに PHP の学習を始めてください。まずは、私のような初心者向けの、マニュアルとして参考にできる、比較的簡単ですが必須かつ実践的な知識を紹介します。

1. 一般的な PHP ライブラリ関数の概要

1. PHP 文字列操作の一般的な関数

int strlen(string str)

2 つの文字列を比較する

a.大文字と小文字を区別しない 2 つの文字列を比較します

int strcmp(string str1,string str2)

b. 大文字と小文字を区別しない方法で 2 つの文字列を比較します

int strcasecmp(string str1,string str2)

2 つの文字列

int strspn(string str1,string str2)

2 つの文字列の異なる部分を検索します

int strcspn(string str1,string str2)

文字列の大文字と小文字を処理します

a すべての文字列を小文字に変換します

string strto lower(string str)

b. すべての文字列を大文字に変換します

string strtoupper(string str)

c. 文字列の最初の文字を大文字にします

string ucfirst(string str)

d.文字列内の各単語の文字を大文字に変換します

string ucwords(string str)

文字列を HTML に変換します

a. 改行文字を HTML 終了タグに変換します

string bl2br(string str)

b. 特殊文字を次のように変換しますwildHTML と同等の形式 (解析形式なし)

string htmlentities(string str[,int quote_style[,int charset]])

string htmlspecialchars(string str [,int quote_style[,string charset]])

c. HTML を変換するプレーンテキストに変換し、すべての php タグと html タグを削除します

string Stripe_tags(string str[,string allowed_tags])

d. テキストを変換します HTML に相当するカスタム変換リストを作成します

array get_html_translaction_table(int table[,int quote_style]) )

e. カスタム変換リストを作成します

string strtr(string str,array replaces)

正規表現関数の置換関数

a. strtok 関数は、事前定義された文字列リストに従って文字列を解析します

string strtok(string str, string tokens): トークンが見つかるまですべてを返します

b. 事前定義された区切り文字に従って文字を分析します String

arrayexplode(string separator, string str[,int limit]): 文字列を分割します

c. 配列を変換します

string implode(string delimiter, array array)

d. 最初に出現する文字列を検索します

int strpos(string str,string substr[,int offset])

e. string

int strrpos(string str,char substr[,offset])

f. 文字列のすべてのインスタンスを別の文字列に置き換えます

mixed str_replace(stringocference,mixed replace,mixed str[,int count])

g. 文字列の一部を取得します。 strstr は、文字列内の最初の事前定義された文字列を返します。 出現箇所から始まる残りの部分を返します。

string strstr(string str,string location)

h. 事前定義されたオフセットに従って、文字列の一部を返します。

string substr(string str,int start[,ing length]): start can これは負の数であり、カウントダウンの開始を示します

i. 文字列の出現頻度を決定します

int substr_count(string str ,string substring)

j. 文字列の一部を別の文字列に置換します

string substr_replace(string str,string replace,int start[,int length])

文字列を先頭から削除します

a.文字列の

string ltrim(string str[,string charliset])

b. 文字列から文字列の末尾の文字を削除します

string rtrim(string str[,string charliset])

c. 両方の文字を削除します。文字列の終端

string trim(string str[,string charliset])

d. 文字列を埋める

  string str_pad(string str,int length[,string pad_string[,int pad_type]])

  字符和单词计数

  a. 字符串中字符计数

  mixed count_chars(string str[,mode])

  b. 字符串中单词总数计数

  mixed str_word_count(string str[,int format])


2. PHP Web开发中常用的三个表单验证函数

(1)isset();??适合于检测是否存在这个参数。用来避免引用不存在的变量

      定义和作用范围:用于测试一个变量是否具有值(包括0,FALSE,或者一个空字串都返回true,但不能是NULL),即:“http://localhost/?fo=”也是可以通过检测,因此不适用。但如果是“http://localhost/”参数中并不含fo参数,就可以用isset来检测,此时isset($_GET['fo'])返回false

      不适用于:该函数不适合于验证html表单中的文本的有效方式。要检查用户输入文本是否有效,可以用empty();

(2)empty();??最好用的一个函数,用于检查变量是否具有空值

      定义和作用范围:用于检查变量是否具有空值:包括:空字串,0,null 或false,这些都返回false,即:“http://localhost/?fo=”或“http://localhost/?fo=0”时,empty检测出来的结果都是ture

      不适用范围:不适用于检测可为0的参数

(3)is_numeric();??检查变量是否为数字

      定义和作用范围:检查变量是否为数字,只适用于检测数字

      不适用范围:但假如参数名不存在,会出错,因此不适合于第一层检测

      另外还有一个好用的验证函数是checkdate($month,$day,$year),用来确认某个日期是否存在或在过去是否存在

 综合示例:

这是表单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>表单验证示例</title></head><body></body><p><a href="?fo=Jack">传有效值</a> <a href="?fo=">传空值</a> <a href="?fo=0">传0值</a><br /><br /><a href="?sex=m">性别:男</a> <a href="?sex=f">性别:女</a><br /><br /><a href="/">清空</a><br /><br /><input type="text" value="<?php echo $_GET['fo']!=''?$_GET['fo']:'';?>" size="155" /></p></html>

这是验证

<?phpini_set("display_errors",1);//ini_set("error_reporting",E_ALL); print_rerror_reporting(E_ALL);$a=NULL;if(isset($a))echo '变量$a的isset为真';echo '<h2>isset的情形:</h2>';if(isset($_GET['fo'])){echo '变量\'fo\'的isset为真,变量可用';}else{echo '变量\'fo\'的isset为假,无变量设置';}echo '<h2>empty的情形:</h2>';if(empty($_GET['fo'])){echo '变量\'fo\'的empty为真,即空值或无效值';}else{echo '变量\'fo\'的empty为假,有值';}echo '<h2>is_numeric的情形:</h2>';if(is_numeric($_GET['fo'])){ //在参数中无fo参数时,则出错。echo '变量\'fo\'的is_numeric为真,是数字';}else{echo '变量\'fo\'的is_numeric为假,不是数字';}echo "<h2>\$_GET['fo']=''的情形:</h2>";if($_GET['fo']==''){ //在参数中无fo参数时,则出错。echo 'fo无值,空的字符串';}elseif($_GET['fo']!=''){echo 'fo有值,不为\'\'.';}echo "<h2>\$_GET['sex']='m'的情形:</h2>";if($_GET['sex']=='m'){ //当参数中无sex变量时就会出错。echo '男的';}elseif($_GET['sex']=='f'){echo '女的';}?>

 

3. 其他常用库函数

(1)ini_set ini_get??可操作配置参数列表

      为了使自己的程序在不同的平台中拥有更好的兼容性,很多时候我们都要获取当前Php的运行环境参数。

      比如我们常用到的:

获取 magic_quotes_gpc 状态,来决定当表单提交时我们是否转义(addslashes)数据;

设定 max_execution_time 来延长程序的执行时间;

设定 error_reporting 使自己的项目在开发与运营阶段切换;

设定 memory_limit 加大内存等等…

(2)ini_set(string varname, string newvalue ) : //设定环境配置的参数

ini_get(string varname) : //获取环境配置的参数

PHP ini_set函数是设置选项中的值,在执行函数后生效,脚本结束的时候,这个设置也失效。不是所有的选项都能被改函数设置的。具体那些值能够设置,可以查看手册中的列表

其实你把PHP ini_set函数和ini_get结合使的话,非常好。比如你想在配置文件里添加自己的包含文件路径,但是你有没有权限更改php.ini,那么你可以结合两个函数:

ini_set ( 'include_path' , ini_get ( 'include_path' ). ':/your_include_dir:' ); 

(3)chdir(dirname(__FILE__)); //切换到global.php所在目录

(4)ob_start('ui_handler');//设置输出缓冲区句柄为ui_handler,即系统首页面为ui_handler函数所定义的内容

(5)int intval(mixed var, int [base]);

      本函数可将变量转成整数类型。可省略的参数 base 是转换的基底,默认值为 10。转换的变量 var 可以为数组或类之外的任何类型变量。

(6)error_reporting(report_level) 函数?? 设置 PHP 的报错级别并返回当前级别
      其中report_level可取值为0、1、2、4、8、16、32、……、4096、8191
      例子:任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:

<?php//禁用错误报告error_reporting(0);//报告运行时错误error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告所有错误error_reporting(E_ALL);?>

 

4. 常见疑难问题解答

1、rand(min,max)与mt_rand(min,max)的区别

如果没有提供可选参数 min 和 max,mt_rand() 返回 0 到 RAND_MAX 之间的伪随机数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 mt_rand(5, 15)。

很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了 Mersenne Twister 中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。

2、PHP echo, print, print_r, printf, sprintf和var_dump函数的区别和使用

1) echo
    echo() 实际上不是一个函数,是php语句,因此您无需对其使用括号。不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误。而且echo是返回void的,并不返回值,所以不能使用它来赋值。
例子:

<?php $a = echo("55nav"); // 错误!不能用来赋值    echo "55nav"; // 55nav     echo ("55nav"); // 55nav      echo ("55nav","com"); //发生错误,有括号不能传递多个参数    echo "55nav"," com"," is", " web";  // 不用括号的时候可以用逗号隔开多个值, 会输出 55nav com is web     echo "55nav is good web.";  // 不管是否换行,最终显示都是为一行 55nav is good web.    echo "$fistname com"; // 如果 $firstname = "55nav", 则会输出 55nav com.    echo '$firstname com'; // 由于使用单引号,所以不会输出$firstname的值,而是输出 $firstname com12?>

2) print
    print() 和 echo() 用法一样,但是echo速度会比print快一点点。实际上它也不是一个函数,因此您无需对其使用括号。不过,如果您希望向print() 传递一个以上的参数,那么使用括号会发生解析错误。注意print总是返回1的,这个和echo不一样,也就是可以使用print来赋值,不过没有实际意 义。
例子:

<?php $a = print("55nav"); // 这个是允许的    echo $a; // $a的值是14 ?>

3) print_r 函数??即打印预定义变量的值
    print_r函数打印关于变量的易于理解的信息。
    语法:mixed print_r ( mixed $expression [, bool return ] )
    如果变量是string , integer or float , 将会直接输出其值,如果变量是一个数组,则会输出一个格式化后的数组,便于阅读,也就是有key和value对应的那种格式。对于object对象类同。 print_r有两个参数,第一个是变量,第二个可设为true,如果设为true,则会返回字符串,否则返回布尔值TRUE。
例子:

<?php $a="55nav";    $c = print_r($a);    echo $c;  // $c的值是TRUE    $c = print_r($a, ture);     echo $c; // $c的值是字符串55nav?>

4) printf函数
    printf函数返回一个格式化后的字符串。
    语法:printf(format,arg1,arg2,arg++)
    参数 format 是转换的格式,以百分比符号 (“%”) 开始到转换字符结束。下面是可能的 format 值:
* %% ? 返回百分比符号
* %b ? 二进制数
* %c ? 依照 ASCII 值的字符
* %d ? 带符号十进制数
* %e ? 可续计数法(比如 1.5e+3)
* %u ? 无符号十进制数
* %f ? 浮点数(local settings aware)
* %F ? 浮点数(not local settings aware)
* %o ? 八进制数
* %s ? 字符串
* %x ? 十六进制数(小写字母)
* %X ? 十六进制数(大写字母)
    arg1, arg2, arg++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的,在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 “\$” 组成。可使用数字指定显示的参数,详情请看例子。
例子:

<?php printf("My name is %s %s。","55nav", "com"); // My name is 55nav com    printf("My name is %2\$s %1\$s","55nav", "com"); // 在s前添加1\$或2\$.....表示后面的参数显示的位置,此行显示My name is com 55nav?>

5) sprintf函数
    此函数使用方法和printf一样,唯一不同的就是该函数把格式化的字符串写写入一个变量中,而不是输出来。
例子:

<?php sprintf("My name is %1\$s %1\$s","55nav", "com");  //你会发现没有任何东西输出的    $out = sprintf("My name is %1\$s %2\$s","55nav", "com");    echo $out;  //输出 My name is 55nav com?>

6) var_dump函数
    功能: 输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。
例子:

 

<?php $a=100;    var_dump($a); //int(100)    $a=100.356;    var_dump($a); //float(100.356)?>

 http://alexia.taobao.com/欢迎您!!!!

 

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。