• [技术干货] PHP 高级过滤器
    检测一个数字是否在一个范围内以下实例使用了 filter_var() 函数来检测一个 INT 型的变量是否在 1 到 200 内:实例<?php$int = 122;$min = 1;$max = 200;if (filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range"=>$min, "max_range"=>$max))) === false) {    echo("变量值不在合法范围内");} else {    echo("变量值在合法范围内");}?>检测 IPv6 地址以下实例使用了 filter_var() 函数来检测一个 $ip 变量是否是 IPv6 地址:实例<?php$ip = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334";if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) {    echo("$ip 是一个 IPv6 地址");} else {    echo("$ip 不是一个 IPv6 地址");}?>检测 URL - 必须包含QUERY_STRING(查询字符串)以下实例使用了 filter_var() 函数来检测 $url 是否包含查询字符串:实例<?php$url = "http://www.runoob.com";if (!filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false) {    echo("$url 是一个合法的 URL");} else {    echo("$url 不是一个合法的 URL");}?>移除 ASCII 值大于 127 的字符以下实例使用了 filter_var() 函数来移除字符串中 ASCII 值大于 127 的字符,同样它也能移除 HTML 标签:实例<?php$str = "<h1>Hello WorldÆØÅ!</h1>";$newstr = filter_var($str, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);echo $newstr;?>
  • [技术干货] PHP 异常处理
    异常是什么PHP 5 提供了一种新的面向对象的错误处理方法。异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。当异常被触发时,通常会发生:当前代码状态被保存代码执行被切换到预定义(自定义)的异常处理器函数根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本我们将展示不同的错误处理方法:异常的基本使用创建自定义的异常处理器多个异常重新抛出异常设置顶层异常处理器注释:异常应该仅仅在错误情况下使用,而不应该用于在一个指定的点跳转到代码的另一个位置。异常的基本使用当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 "Uncaught Exception" (未捕获异常)的错误消息。让我们尝试抛出一个异常,同时不去捕获它:<?php // 创建一个有异常处理的函数 function checkNum($number) { if($number>1) { throw new Exception("Value must be 1 or below"); } return true; } // 触发异常 checkNum(2); ?>上面的代码会得到类似这样的一个错误:Fatal error: Uncaught exception 'Exception' with message 'Value must be 1 or below' in /www/runoob/test/test.php:7 Stack trace: #0 /www/runoob/test/test.php(13): checkNum(2) #1 {main} thrown in /www/runoob/test/test.php on line 7Try、throw 和 catch要避免上面实例中出现的错误,我们需要创建适当的代码来处理异常。适当的处理异常代码应该包括:Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。Throw - 里规定如何触发异常。每一个 "throw" 必须对应至少一个 "catch"。Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象。让我们触发一个异常:<?php // 创建一个有异常处理的函数 function checkNum($number) { if($number>1) { throw new Exception("变量值必须小于等于 1"); } return true; } // 在 try 块 触发异常 try { checkNum(2); // 如果抛出异常,以下文本不会输出 echo '如果输出该内容,说明 $number 变量'; } // 捕获异常 catch(Exception $e) { echo 'Message: ' .$e->getMessage(); } ?>上面代码将得到类似这样一个错误:Message: 变量值必须小于等于 1实例解释:上面的代码抛出了一个异常,并捕获了它:创建 checkNum() 函数。它检测数字是否大于 1。如果是,则抛出一个异常。在 "try" 代码块中调用 checkNum() 函数。checkNum() 函数中的异常被抛出。"catch" 代码块接收到该异常,并创建一个包含异常信息的对象 ($e)。通过从这个 exception 对象调用 $e->getMessage(),输出来自该异常的错误消息。然而,为了遵循 "每个 throw 必须对应一个 catch" 的原则,可以设置一个顶层的异常处理器来处理漏掉的错误。创建一个自定义的 Exception 类创建自定义的异常处理程序非常简单。我们简单地创建了一个专门的类,当 PHP 中发生异常时,可调用其函数。该类必须是 exception 类的一个扩展。这个自定义的 customException 类继承了 PHP 的 exception 类的所有属性,您可向其添加自定义的函数。我们开始创建 customException 类:<?php class customException extends Exception { public function errorMessage() { // 错误信息 $errorMsg = '错误行号 '.$this->getLine().' in '.$this->getFile() .': <b>'.$this->getMessag
  • [技术干货] PhP error
    PHP 错误处理在创建脚本和 Web 应用程序时,错误处理是一个重要的部分。如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门。我将为您讲解不同的错误处理方法:简单的 "die()" 语句自定义错误和错误触发器错误报告基本的错误处理:使用 die() 函数第一个实例展示了一个打开文本文件的简单脚本:<?php$file=fopen("welcome.txt","r");?>如果文件不存在,您会得到类似这样的错误:Warning: fopen(welcome.txt) [function.fopen]: failed to open stream:No such file or directory in /www/runoob/test/test.php on line 2为了避免用户得到类似上面的错误消息,我们在访问文件之前检测该文件是否存在:<?phpif(!file_exists("welcome.txt")){    die("文件不存在");}else{    $file=fopen("welcome.txt","r");}?>现在,如果文件不存在,您会得到类似这样的错误消息:文件不存在相比之前的代码,上面的代码更有效,这是由于它采用了一个简单的错误处理机制在错误之后终止了脚本。然而,简单地终止脚本并不总是恰当的方式。让我们研究一下用于处理错误的备选的 PHP 函数。创建自定义错误处理器创建一个自定义的错误处理器非常简单。我们很简单地创建了一个专用函数,可以在 PHP 中发生错误时调用该函数。该函数必须有能力处理至少两个参数 (error level 和 error message),但是可以接受最多五个参数(可选的:file, line-number 和 error context):语法error_function(error_level,error_message,error_file,error_line,error_context)
  • [技术干货] PHP Emile函数
    PHP 简易 E-Mail通过 PHP 发送电子邮件的最简单的方式是发送一封文本 email。在下面的实例中,我们首先声明变量($to, $subject, $message, $from, $headers),然后我们在 mail() 函数中使用这些变量来发送了一封 E-mail:<?php$to = "someone@example.com";         // 邮件接收者$subject = "参数邮件";                // 邮件标题$message = "Hello! 这是邮件的内容。";  // 邮件正文$from = "someonelse@example.com";   // 邮件发送者$headers = "From:" . $from;         // 头部信息设置mail($to,$subject,$message,$headers);echo "邮件已发送";?>PHP Mail 表单通过 PHP,您能够在自己的站点制作一个反馈表单。下面的实例向指定的 e-mail 地址发送了一条文本消息:<html><head><meta charset="utf-8"><title>华为云(huaweiyun.com)</title></head><body><?phpif (isset($_REQUEST['email'])) { // 如果接收到邮箱参数则发送邮件    // 发送邮件    $email = $_REQUEST['email'] ;    $subject = $_REQUEST['subject'] ;    $message = $_REQUEST['message'] ;    mail("someone@example.com", $subject,    $message, "From:" . $email);    echo "邮件发送成功";} else { // 如果没有邮箱参数则显示表单    echo "<form method='post' action='mailform.php'>    Email: <input name='email' type='text'><br>    Subject: <input name='subject' type='text'><br>    Message:<br>    <textarea name='message' rows='15' cols='40'>    </textarea><br>    <input type='submit'>    </form>";}?></body></html>
  • [技术干货] Php COOKIE
    Cookie 是什么?cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。如何创建 Cookie?setcookie() 函数用于设置 cookie。注释:setcookie() 函数必须位于 <html> 标签之前。语法setcookie(name, value, expire, path, domain);实例 1在下面的例子中,我们将创建名为 "user" 的 cookie,并为它赋值 "runoob"。我们也规定了此 cookie 在一小时后过期:<?phpsetcookie("user", "runoob", time()+3600);?><html>.....注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码。(为防止 URL 编码,请使用 setrawcookie() 取而代之。)实例 2您还可以通过另一种方式设置 cookie 的过期时间。这也许比使用秒表示的方式简单。<?php$expire=time()+60*60*24*30;setcookie("user", "runoob", $expire);?><html>.....在上面的实例中,过期时间被设置为一个月(60 秒 * 60 分 * 24 小时 * 30 天)。如何取回 Cookie 的值?PHP 的 $_COOKIE 变量用于取回 cookie 的值。在下面的实例中,我们取回了名为 "user" 的 cookie 的值,并把它显示在了页面上:<?php// 输出 cookie 值echo $_COOKIE["user"];// 查看所有 cookieprint_r($_COOKIE);?>在下面的实例中,我们使用 isset() 函数来确认是否已设置了 cookie:<html><head><meta charset="utf-8"><title>huaweiyun(huaweiyun.com)</title></head><body><?phpif (isset($_COOKIE["user"]))    echo "欢迎 " . $_COOKIE["user"] . "!<br>";else    echo "普通访客!<br>";?></body></html>如何删除 Cookie?当删除 cookie 时,您应当使过期日期变更为过去的时间点。删除的实例:<?php// 设置 cookie 过期时间为过去 1 小时setcookie("user", "", time()-3600);?>如果浏览器不支持 Cookie 该怎么办?如果您的应用程序需要与不支持 cookie 的浏览器打交道,那么您不得不使用其他的办法在您的应用程序中的页面之间传递信息。一种方式是通过表单传递数据(有关表单和用户输入的内容,在本教程的前面章节中我们已经介绍过了)。下面的表单在用户单点击 "Submit" 按钮时,向 "welcome.php" 提交了用户输入:<html><head><meta charset="utf-8"><title>huaweiyun(huaweiyun.com)</title></head><body><form action="welcome.php" method="post">名字: <input type="text" name="name">年龄: <input type="text" name="age"><input type="submit"></form></body></html>取回 "welcome.php" 文件中的值,如下所示:<html><head><meta charset="utf-8"><title>huaweiyun(huaweiyun.com)</title></head><body>欢迎 <?php echo $_POST["name"]; ?>.<br>你 <?php echo $_POST["age"]; ?> 岁了。</body></html>
  • [技术干货] PHP get变量
    在 PHP 中,预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。$_GET 变量预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。实例form.html 文件代码如下:<html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><form action="welcome.php" method="get">名字: <input type="text" name="fname">年龄: <input type="text" name="age"><input type="submit" value="提交"></form></body></html>当用户点击 "Submit" 按钮时,发送到服务器的 URL 如下所示:http://www.runoob.com/welcome.php?fname=Runoob&age=3"welcome.php" 文件现在可以通过 $_GET 变量来收集表单数据了(请注意,表单域的名称会自动成为 $_GET 数组中的键):欢迎 <?php echo $_GET["fname"]; ?>!<br>你的年龄是 <?php echo $_GET["age"]; ?>  岁。何时使用 method="get"?在 HTML 表单中使用 method="get" 时,所有的变量名和值都会显示在 URL 中。注释:所以在发送密码或其他敏感信息时,不应该使用这个方法!然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。注释:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。
  • [技术干货] PHP 表单
    PHP 表单处理有一点很重要的事情值得注意,当处理 HTML 表单时,PHP 能把来自 HTML 页面中的表单元素自动变成可供 PHP 脚本使用。实例下面的实例包含了一个 HTML 表单,带有两个输入框和一个提交按钮。form.html 文件代码:<html><head><meta charset="utf-8"><title>huaweiyun(huaweiyun.com)</title></head><body> <form action="welcome.php" method="post">名字: <input type="text" name="fname">年龄: <input type="text" name="age"><input type="submit" value="提交"></form> </body></html>当用户填写完上面的表单并点击提交按钮时,表单的数据会被送往名为 "welcome.php" 的 PHP 文件:welcome.php 文件代码:欢迎<?php echo $_POST["fname"]; ?>!<br>你的年龄是 <?php echo $_POST["age"]; ?>  岁。通过浏览器访问演示如下:我们将在下一章中讲解 PHP 中的 $_GET 和 $_POST 变量。PHP 获取下拉菜单的数据PHP 下拉菜单单选以下实例我们设置了下拉菜单三个选项,表单使用 GET 方式获取数据,action 属性值为空表示提交到当前脚本,我们可以通过 select 的 name 属性获取下拉菜单的值:php_form_select.php 文件代码:<?php$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';if($q) {        if($q =='RUNOOB') {                echo '华为云<br>http://www.huaweiyun.com';        } else if($q =='GOOGLE') {                echo 'Google 搜索<br>http://www.google.com';        } else if($q =='TAOBAO') {                echo '淘宝<br>http://www.taobao.com';        }} else {?><form action="" method="get">     <select name="q">    <option value="">选择一个站点:</option>    <option value="RUNOOB">Runoob</option>    <option value="GOOGLE">Google</option>    <option value="TAOBAO">Taobao</option>    </select>    <input type="submit" value="提交">    </form><?php}?>PHP 下拉菜单多选如果下拉菜单是多选的( multiple="multiple"),我们可以通过将设置 select name="q[]" 以数组的方式获取,以下使用 POST 方式提交,代码如下所示:php_form_select_mul.php 文件代码:<?php$q = isset($_POST['q'])? $_POST['q'] : '';if(is_array($q)) {    $sites = array(            'RUNOOB' => '华为云: http://www.华为云.com',            'GOOGLE' => 'Google 搜索: http://www.google.com',            'TAOBAO' => '淘宝: http://www.taobao.com',    );    foreach($q as $val) {        // PHP_EOL 为常量,用于换行        echo $sites[$val] . PHP_EOL;    }      } else {?><form action="" method="post">     <select multiple="multiple" name="q[]">    <option value="">选择一个站点:</option>    <option value="RUNOOB">Runoob</option>    <option value="GOOGLE">Google</option>    <option value="TAOBAO">Taobao</option>    </select>    <input type="submit" value="提交">    </form><?php}?>单选按钮表单PHP 单选按钮表单中 name 属性的值是一致的,value 值是不同的,代码如下所示:php_form_radio.php 文件代码:<?php$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';if($q) {        if($q =='RUNOOB') {                echo '华为云<br>http://www.huaweiyun.com';        } else if($q =='GOOGLE') {                echo 'Google 搜索<br>http://www.google.com';        } else if($q =='TAOBAO') {                echo '淘宝<br>http://www.taobao.com';        }} else {?><form action="" method="get">     <input type="radio" name="q" value="RUNOOB" />Runoob    <input type="radio" name="q" value="GOOGLE" />Google    <input type="radio" name="q" value="TAOBAO" />Taobao    <input type="submit" value="提交"></form><?php}?>checkbox 复选框PHP checkbox 复选框可以选择多个值:php_form_select_checkbox.php 文件代码:<?php$q = isset($_POST['q'])? $_POST['q'] : '';if(is_array($q)) {    $sites = array(            'RUNOOB' => 'huawieyun: http://www.huaweiyun.com',            'GOOGLE' => 'Google 搜索: http://www.google.com',            'TAOBAO' => '淘宝: http://www.taobao.com',    );    foreach($q as $val) {        // PHP_EOL 为常量,用于换行        echo $sites[$val] . PHP_EOL;    }      } else {?><form action="" method="post">     <input type="checkbox" name="q[]" value="RUNOOB"> Runoob<br>     <input type="checkbox" name="q[]" value="GOOGLE"> Google<br>     <input type="checkbox" name="q[]" value="TAOBAO"> Taobao<br>    <input type="submit" value="提交"></form><?php}?>
  • [技术干货] PHP for循环
    for 循环for 循环用于您预先知道脚本需要运行的次数的情况。语法for (初始值; 条件; 增量){    要执行的代码;}参数:初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。注释:上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)。实例下面的实例定义一个初始值为 i=1 的循环。只要变量 i 小于或者等于 5,循环将继续运行。循环每运行一次,变量 i 就会递增 1:实例<?phpfor ($i=1; $i<=5; $i++){    echo "数字为 " . $i . PHP_EOL;}?>输出:数字为 1数字为 2数字为 3数字为 4数字为 5foreach 循环foreach 循环用于遍历数组。语法foreach ($array as $value){    要执行代码;}每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。foreach ($array as $key => $value){    要执行代码;}每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值。实例下面的实例演示了一个输出给定数组的值的循环:实例<?php$x=array("Google","Runoob","Taobao");foreach ($x as $value){    echo $value . PHP_EOL;}?>输出:GoogleRunoobTaobao下面的实例演示了一个输出给定数组键与值的循环:实例<?php$x=array(1=>"Google", 2=>"Runoob", 3=>"Taobao");foreach ($x as $key => $value){    echo "key  为 " . $key . ",对应的 value 为 ". $value . PHP_EOL;}?>输出:key  为 1,对应的 value 为 Googlekey  为 2,对应的 value 为 Runoobkey  为 3,对应的 value 为 Taobao
  • [技术干货] PHP Switch 语句
    PHP Switch 语句如果您希望有选择地执行若干代码块之一,请使用 switch 语句。语法<?phpswitch (n){case label1:    如果 n=label1,此处代码将执行;    break;case label2:    如果 n=label2,此处代码将执行;    break;default:    如果 n 既不等于 label1 也不等于 label2,此处代码将执行;}?>工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。实例<?php$favcolor="red";switch ($favcolor){case "red":    echo "你喜欢的颜色是红色!";    break;case "blue":    echo "你喜欢的颜色是蓝色!";    break;case "green":    echo "你喜欢的颜色是绿色!";    break;default:    echo "你喜欢的颜色不是 红, 蓝, 或绿色!";}?>运行实例 »
  • [技术干货] php魔术变量
    PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。有八个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:__LINE__文件中的当前行号。实例<?phpecho '这是第 " '  . __LINE__ . ' " 行';?>以上实例输出结果为:这是第 “ 2 ” 行__FILE__文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。实例:实例<?phpecho '该文件位于 " '  . __FILE__ . ' " ';?>以上实例输出结果为:该文件位于 “ E:\wamp\www\test\index.php ”__DIR__文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)实例<?phpecho '该文件位于 " '  . __DIR__ . ' " ';?>以上实例输出结果为:该文件位于 “ E:\wamp\www\test ”__FUNCTION__函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。实例<?phpfunction test() {    echo  '函数名为:' . __FUNCTION__ ;}test();?>以上实例输出结果为:函数名为:test__CLASS__类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。实例<?phpclass test {    function _print() {        echo '类名为:'  . __CLASS__ . "<br>";        echo  '函数名为:' . __FUNCTION__ ;    }}$t = new test();$t->_print();?>以上实例输出结果为:类名为:test函数名为:_print__TRAIT__Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。实例<?phpclass Base {    public function sayHello() {        echo 'Hello ';    }} trait SayWorld {    public function sayHello() {        parent::sayHello();        echo 'World!';    }} class MyHelloWorld extends Base {    use SayWorld;} $o = new MyHelloWorld();$o->sayHello();?>以上例程会输出:Hello World!__METHOD__类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。实例:实例<?phpfunction test() {    echo  '函数名为:' . __METHOD__ ;}test();?>以上实例输出结果为:函数名为:test__NAMESPACE__当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。实例:实例<?phpnamespace MyProject; echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject"?>以上实例输出结果为:命名空间为:"MyProject"
  • [技术干货] php函数
    PHP 的真正威力源自于它的函数。在 PHP 中,提供了超过 1000 个内建的函数。PHP 内建函数如需查看所有数组函数的完整参考手册和实例,请访问我们的 PHP 参考手册。PHP 函数在本章中,我们将为您讲解如何创建自己的函数。如要在页面加载时执行脚本,您可以把它放到函数里。函数是通过调用函数来执行的。你可以在页面的任何位置调用函数。创建 PHP 函数函数是通过调用函数来执行的。语法<?phpfunction functionName(){    // 要执行的代码}?>PHP 函数准则:函数的名称应该提示出它的功能函数名称以字母或下划线开头(不能以数字开头)实例一个简单的函数,在其被调用时能输出我的名称:实例<?phpfunction writeName(){    echo "Kai Jim Refsnes";} echo "My name is ";writeName();?>输出:My name is Kai Jim RefsnesPHP 函数 - 添加参数为了给函数添加更多的功能,我们可以添加参数,参数类似变量。参数就在函数名称后面的一个括号内指定。实例 1下面的实例将输出不同的名字,但姓是相同的:实例<?phpfunction writeName($fname){    echo $fname . " Refsnes.<br>";} echo "My name is ";writeName("Kai Jim");echo "My sister's name is ";writeName("Hege");echo "My brother's name is ";writeName("Stale");?>输出:My name is Kai Jim Refsnes.My sister's name is Hege Refsnes.My brother's name is Stale Refsnes.实例 2下面的函数有两个参数:实例<?phpfunction writeName($fname,$punctuation){    echo $fname . " Refsnes" . $punctuation . "<br>";} echo "My name is ";writeName("Kai Jim",".");echo "My sister's name is ";writeName("Hege","!");echo "My brother's name is ";writeName("Ståle","?");?>输出:My name is Kai Jim Refsnes.My sister's name is Hege Refsnes!My brother's name is Ståle Refsnes?PHP 函数 - 返回值如需让函数返回一个值,请使用 return 语句。实例<?phpfunction add($x,$y){    $total=$x+$y;    return $total;} echo "1 + 16 = " . add(1,16);?>输出:1 + 16 = 17
  • [技术干货] PHP 超级全局变量
    $GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。以下实例介绍了如何使用超级全局变量 $GLOBALS:实例<?php $x = 75; $y = 25; function addition() {     $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>以上实例中 z 是一个$GLOBALS数组中的超级全局变量,该变量同样可以在函数外访问。PHP $_SERVER$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。以下实例中展示了如何使用$_SERVER中的元素:实例<?php echo $_SERVER['PHP_SELF'];echo "<br>";echo $_SERVER['SERVER_NAME'];echo "<br>";echo $_SERVER['HTTP_HOST'];echo "<br>";echo $_SERVER['HTTP_REFERER'];echo "<br>";echo $_SERVER['HTTP_USER_AGENT'];echo "<br>";echo $_SERVER['SCRIPT_NAME'];?>PHP $_REQUESTPHP $_REQUEST 用于收集HTML表单提交的数据。以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:实例<html><body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type="submit"></form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body></html>PHP $_POSTPHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据:实例<html><body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type="submit"></form> <?php $name = $_POST['fname']; echo $name; ?> </body></html>PHP $_GETPHP $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。$_GET 也可以收集URL中发送的数据。假定我们有一个包含参数的超链接HTML页面:<html><body><a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a></body></html>当用户点击链接 "Test $GET", 参数 "subject" 和 "web" 将发送至"test_get.php",你可以在 "test_get.php" 文件中使用 $_GET 变量来获取这些数据。以下实例显示了 "test_get.php" 文件的代码:实例<html><body> <?php echo "Study " . $_GET['subject'] . " @ " . $_GET['web'];?> </body></html>
  • [技术干货] php数组排序
    sort() - 对数组进行升序排列下面的实例将 $cars 数组中的元素按照字母升序排列:实例<?php$cars=array("Volvo","BMW","Toyota");sort($cars);?>下面的实例将 $numbers 数组中的元素按照数字升序排列:实例<?php$numbers=array(4,6,2,22,11);sort($numbers);?>rsort() - 对数组进行降序排列下面的实例将 $cars 数组中的元素按照字母降序排列:实例<?php$cars=array("Volvo","BMW","Toyota");rsort($cars);?>下面的实例将 $numbers 数组中的元素按照数字降序排列:实例<?php$numbers=array(4,6,2,22,11);rsort($numbers);?>asort() - 根据数组的值,对数组进行升序排列下面的实例根据数组的值,对关联数组进行升序排列:实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");asort($age);?>ksort() - 根据数组的键,对数组进行升序排列下面的实例根据数组的键,对关联数组进行升序排列:实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");ksort($age);?>arsort() - 根据数组的值,对数组进行降序排列下面的实例根据数组的值,对关联数组进行降序排列:实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");arsort($age);?>krsort() - 根据数组的键,对数组进行降序排列下面的实例根据数组的键,对关联数组进行降序排列:实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");krsort($age);?>
  • [技术干货] PHP - 数组排序函数
    sort() - 对数组进行升序排列下面的实例将 $cars 数组中的元素按照字母升序排列:实例<?php$cars=array("Volvo","BMW","Toyota");sort($cars);?>下面的实例将 $numbers 数组中的元素按照数字升序排列:实例<?php$numbers=array(4,6,2,22,11);sort($numbers);?>rsort() - 对数组进行降序排列下面的实例将 $cars 数组中的元素按照字母降序排列:实例<?php$cars=array("Volvo","BMW","Toyota");rsort($cars);?>下面的实例将 $numbers 数组中的元素按照数字降序排列:实例<?php$numbers=array(4,6,2,22,11);rsort($numbers);?>asort() - 根据数组的值,对数组进行升序排列下面的实例根据数组的值,对关联数组进行升序排列:实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");asort($age);?>ksort() - 根据数组的键,对数组进行升序排列下面的实例根据数组的键,对关联数组进行升序排列:实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");ksort($age);?>arsort() - 根据数组的值,对数组进行降序排列下面的实例根据数组的值,对关联数组进行降序排列:实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");arsort($age);?>krsort() - 根据数组的键,对数组进行降序排列下面的实例根据数组的键,对关联数组进行降序排列:实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");krsort($age);?>
  • [技术干货] php 数组
    数组能够在单个变量中存储多个值:实例<?php$cars=array("Volvo","BMW","Toyota");echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";?>数组是什么?数组是一个能在单个变量中存储多个值的特殊变量。如果您有一个项目清单(例如:车名字的清单),将其存储到单个变量中,如下所示:$cars1="Volvo";$cars2="BMW";$cars3="Toyota";然而,如果您想要遍历数组并找出特定的一个呢?如果数组的项不只 3 个而是 300 个呢?解决办法是创建一个数组!数组可以在单个变量中存储多个值,并且您可以根据键访问其中的值。在 PHP 中创建数组在 PHP 中,array() 函数用于创建数组:array();在 PHP 中,有三种类型的数组:数值数组 - 带有数字 ID 键的数组关联数组 - 带有指定的键的数组,每个键关联一个值多维数组 - 包含一个或多个数组的数组PHP 数值数组这里有两种创建数值数组的方法:自动分配 ID 键(ID 键总是从 0 开始):$cars=array("Volvo","BMW","Toyota");人工分配 ID 键:$cars[0]="Volvo";$cars[1]="BMW";$cars[2]="Toyota";下面的实例创建一个名为 $cars 的数值数组,并给数组分配三个元素,然后打印一段包含数组值的文本:实例<?php$cars=array("Volvo","BMW","Toyota");echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";?>运行实例 »获取数组的长度 - count() 函数count() 函数用于返回数组的长度(元素的数量):实例<?php$cars=array("Volvo","BMW","Toyota");echo count($cars);?>遍历数值数组遍历并打印数值数组中的所有值,您可以使用 for 循环,如下所示:实例<?php$cars=array("Volvo","BMW","Toyota");$arrlength=count($cars); for($x=0;$x<$arrlength;$x++){    echo $cars[$x];    echo "<br>";}?>PHP 关联数组关联数组是使用您分配给数组的指定的键的数组。这里有两种创建关联数组的方法:$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");or:$age['Peter']="35";$age['Ben']="37";$age['Joe']="43";随后可以在脚本中使用指定的键:实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");echo "Peter is " . $age['Peter'] . " years old.";?>遍历关联数组遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:实例<?php$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach($age as $x=>$x_value){    echo "Key=" . $x . ", Value=" . $x_value;    echo "<br>";}?>