php高级教程

php高级教程

  导语:php是it行业语言,也是一门较热的网络技术,下面就由我为大家介绍一下php高级教程,欢迎大家阅读!

  一、PHP- 多维数组:

  $cars = array(

  array("huawei","12","11"),

  array("meizu","23","12"),

  array("iphone","12","4")

  );

  $title = array("手机总共有:","个,已经卖出去了","个!");

  for($i=0;$i{ for($j=0;$j { echo $cars[$i][$j]; echo $title[$j]; } echo " ";}?>

  输出:

  huawei手机总共有:12个,已经卖出去了11个!

  meizu手机总共有:23个,已经卖出去了12个!

  iphone手机总共有:12个,已经卖出去了4个!

   二、PHP 日期和时间

  date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。

  下面列出了一些常用于日期的字符:

  ·d - 表示月里的某天(01-31) D-表示当前这天的英文星期简写

  ·m - 表示月(01-12) M-表示当前月的英文缩写

  ·Y - 表示年(四位数) y-表示年(后两位数)

  ·1 - 表示周里的某天 L-返回0

  其他字符,比如 "/","." 或 "-" 也可被 插入字符中,以增加其他格式。

  echo"今天是 " . date("YYYY/m/d") ." "; //2017201720172017/06/26 由此可见不能用js中yyyy-mm-dd的形式

  echo"今天是 " . date("Y.m.d") . " "; //2017.06.26

  echo"今天是 " . date("Y-M-D") . " "; //17-Jun-Mon

  echo"今天是 " . date("l") . " "; //Monday 星期全称

  echo"今天是 " . date("L") . " "; //0

  ?>

  获得简单的时间

  下面是常用于时间的字符:

  date_default_timezone_set("Asia/Shanghai"); //设置时区

  echo date_default_timezone_get(oid);//获取当前时区

  ·h - 带有首位零的 12 小时小时格式 H-24小时格式

  ·i - 带有首位零的分钟 I-0

  ·s - 带有首位零的秒(00 -59) S-返回th我也不知道是什么鬼

  ·a - 小写的午前和午后(am 或 pm) A-返回大写格式:AM或PM

  echo"现在是 " . date("h:i:sa") . " "; //现在是 02:15:44pm

  echo"现在是 " . date("H:I:SA") . " "; //现在是 14:0:thPM

  通过 PHP mktime() 创建日期

  date() 函数中可选的时间戳参数规定时间戳。如果您未规定时间戳,将使用当前日期和时间

  语法

  mktime(hour,minute,second,month,day,year)

  $d=mktime(9,12, 31, 6, 10, 215) ;

  echo"创建日期是 " . date("Y-m-d h:i:sa", $d) ." "; //在date方法里面传参则取的是参数中的时间,如果不传的话则取的是当前时间

  通过 PHP strtotime() 用字符串来创建日期

  PHP strtotime() 函数用于把人类可读的字符串转换为Unix 时间。

  $d=strtotime("10:38pm April 15 2015");

  echo "创建日期是 " . date("Y-m-d h:i:sa", $d);

  如果输入了它不能识别的字符串则保存为 1970-01-01 12:00:00am

  计算两个时间段内的时间所有的周六

  $startdate = strtotime("Saturday");

  $enddate = strtotime("+6 weeks",$startdate);

  while ($startdate < $enddate) {

  echo date("M d", $startdate)," ";

  $startdate = strtotime("+1 week", $startdate); //在$startdate基础上加一个礼拜,你还可以加1天,1个月,1年

  }

  ?>

  计算距离某一天还有多长时间

  $d1=strtotime("2017-7-30");

  $d2=ceil(($d1-time())/60/60/24);

  echo "距离十二月三十一日还有:" . $d2 ." 天。";

  ?>

   三、PHP Cookies

  cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

  创建cookie

  setcookie() 函数用于设置 cookie。

  注释:setcookie() 函数必须位于

  标签之前。

  语法

  setcookie(name, value, expire, path, domain);

  在下面的例子中,我们将创建名为 "user" 的 cookie,把为它赋值 "Alex Porter"。我们也规定了此 cookie 在一小时后过期:

  setcookie("user", "Alex Porter", time()+3600);

  ?>

  注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用setrawcookie() 取而代之)。

  取回 Cookie 的值

  PHP 的 $_COOKIE 变量用于取回cookie 的值。

  // Print a cookie

  echo $_COOKIE["user"];

  // A way to view all cookies

  print_r($_COOKIE);

  ?>

  删除 cookie当删除 cookie 时,您应当使过期日期变更为过去的时间点。

  // set the expiration date to one hour ago

  setcookie("user", "", time()-3600);

  ?>

  如果浏览器不支持 cookie 该怎么办?

  如果您的应用程序涉及不支持cookie 的浏览器,就不得不采取其他方法在应用程序中从一张页面向另一张页面传递信息。一种方式是从表单传递数据(有关表单和用户输入的内容,稍早前我们已经在本教程中介绍过了)。

  下面的表单在用户单击提交按钮时向"welcome.php" 提交了用户输入:

  Name:

  Age:

  取回"welcome.php" 中的值,就像这样:

  Welcome .

  You are years old.

   四、PHP Sessions

  PHP Session 变量

  当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。

  通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。

  Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在cookie 中,亦或通过 URL 进行传导。

  开始 PHP Session

  在您把用户信息存储到 PHPsession 中之前,首先必须启动会话。

  注释:session_start() 函数必须位于

  标签之前:

  上面的代码会向服务器注册用户的会话,以便您可以开始保存用户信息,同时会为用户会话分配一个 UID。

  存储 Session 变量

  存储和取回session 变量的正确方法是使用 PHP$_SESSION 变量:

  session_start();

  // store session data

  $_SESSION['views']=1;

  ?>

  //retrieve session data

  echo "Pageviews=". $_SESSION['views'];

  ?>

  输出:

  Pageviews=1

  在下面的例子中,我们创建了一个简单的 page-view 计数器。isset() 函数检测是否已设置 "views" 变量。如果已设置 "views" 变量,我们累加计数器。如果 "views" 不存在,则我们创建 "views" 变量,并把它设置为 1:

  session_start();

  if(isset($_SESSION['views']))

  $_SESSION['views']=$_SESSION['views']+1;

  else

  $_SESSION['views']=1;

  echo "Views=". $_SESSION['views'];

  ?>

  终结 Session

  如果您希望删除某些session 数据,可以使用 unset() 或 session_destroy() 函数。

  unset() 函数用于释放指定的 session 变量:

  unset($_SESSION['views']);

  ?>

  您也可以通过session_destroy() 函数彻底终结 session:

  session_destroy();

  ?>

  注释:session_destroy() 将重置 session,您将失去所有已存储的session 数据。

   五、PHP 错误处理

  错误处理方法:

  ·简单的 "die()" 语句

  ·自定义错误和错误触发器

  ·错误报告

  为了避免用户获得类似上面的错误消息,我们在访问文件之前检测该文件是否存在:

  if(!file_exists("welcome.txt"))

  {

  die("File not found");

  }

  else

  {

  $file=fopen("welcome.txt","r");

  }

  ?>

  假如文件不存在,您会得到类似这样的错误消息:

  File not found

  比起之前的代码,上面的代码更有效,这是由于它采用了一个简单的错误处理机制在错误之后终止了脚本。

  不过,简单地终止脚本并不总是恰当的方式。让我们研究一下用于处理错误的备选的 PHP 函数。

  创建自定义错误处理器

  创建一个自定义的错误处理器,可以在PHP 中发生错误时调用该函数。

  该函数必须有能力处理至少两个参数(error level 和 error message),但是可以接受最多五个参数(可选的:file, line-number 以及error context):

  语法

  error_function(error_level,error_message,

  error_file,error_line,error_context)

  参数描述

  error_level:必需。为用户定义的错误规定错误报告级别。必须是一个值数。参见下面的表格:错误报告级别。

  error_message:必需。为用户定义的错误规定错误消息。

  error_file:可选。规定错误在其中发生的文件名。

  error_line:可选。规定错误发生的行号。

  error_context:可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。

  创建错误处理函数

  function customError($errno, $errstr)

  {

  echo "Error: [$errno] $errstr

  ";

  echo "Ending Script";

  die();

  }

  现在,我们已经创建了一个错误处理函数,我们需要确定在何时触发该函数。

  Set ErrorHandler

  PHP 的默认错误处理程序是内建的错误处理程序。我们打算把上面的函数改造为脚本运行期间的默认错误处理程序。

  可以修改错误处理程序,使其仅应用到某些错误,这样脚本就可以不同的方式来处理不同的错误。不过,在本例中,我们打算针对所有错误来使用我们的自定义错误处理程序:

  set_error_handler("customError");

  由于我们希望我们的自定义函数来处理所有错误,set_error_handler() 仅需要一个参数,可以添加第二个参数来规定错误级别。

  //定义错误处理函数

  function customError($errno, $errstr)

  {

  echo "rror: [$errno] $errstr";

  }

  //设置错误处理函数

  set_error_handler("customError");

  //触发错误

  echo($test);

  ?>

  可能的错误类型:

  ·E_USER_ERROR - 致命的用户生成的run-time 错误。错误无法恢复。脚本执行被中断。

  ·E_USER_WARNING - 非致命的用户生成的run-time 警告。脚本执行不被中断。

  ·E_USER_NOTICE - 默认。用户生成的`run-time 通知。脚本发现了可能的错误,也有可能在脚本运行正常时发生。

  例子

  在本例中,如果"test" 变量大于 "1",则发生E_USER_WARNING 错误。如果发生了 E_USER_WARNING,我们将使用我们的自定义错误处理程序并结束脚本:

  //error handler function

  function customError($errno, $errstr)

  {

  echo "Error: [$errno] $errstr

  ";

  echo "Ending Script";

  die();

  }

  //set error handler

  set_error_handler("customError",E_USER_WARNING);

  //trigger error

  $test=2;

  if ($test>1)

  {

  trigger_error("Value must be 1 or below",E_USER_WARNING);

  }

  ?>

  错误记录

  通过 E-Mail 发送错误消息

  function customError($errno, $errstr)

  {

  echo "Error: [$errno] $errstr ";

  echo "Webmaster has been notified";

  error_log("Error: [$errno] $errstr",1,

  "[email protected]","From: [email protected]");

  }

   六、PHP 异常处理

  异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。

  当异常被触发时,通常会发生:

  ·当前代码状态被保存

  ·代码执行被切换到预定义的异常处理器函数

  ·根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本

  我们将展示不同的错误处理方法:

  ·异常的基本使用

  ·创建自定义的异常处理器

  ·多个异常

  ·重新抛出异常

  ·设置顶层异常处理器

  Try, throw 和 catch

  要避免上面例子出现的错误,我们需要创建适当的代码来处理异常。

  正确的处理程序应当包括:

  1.Try - 使用异常的函数应该位于"try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。

  2.Throw - 这里规定如何触发异常。每一个 "throw" 必须对应至少一个 "catch"

  3.Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象

  让我们触发一个异常:

  //创建可抛出一个异常的函数

  function checkNum($number)

  {

  if($number>1)

  {

  throw new Exception("Value must be 1 or below");

  }

  return true;

  }

  //在 "try" 代码块中触发异常

  try

  {

  checkNum(2);//如果抛出异常则执行catch中的语句,这里就不接着往下执行了

  //If the exception is thrown, this text will not be shown

  echo 'If you see this, the number is 1 or below';

  }

  //捕获异常

  catch(Exception $e)

  {

  echo 'Message: ' .$e->getMessage();

  }

  ?>

  上面代码将获得类似这样一个错误:

  Message: Value must be 1 or below

  创建一个自定义的 Exception 类

  创建自定义的异常处理程序非常简单。我们简单地创建了一个专门的类,当 PHP 中发生异常时,可调用其函数。该类必须是 exception 类的一个扩展。

  这个自定义的exception 类继承了 PHP 的 exception 类的所有属性,您可向其添加自定义的函数。

  我们开始创建exception 类:

  class customException extends Exception //extends 相当于继承关键字

  {

  public function errorMessage() //定义了自己的报错函数

  {

  //error message 在继承的类中,可以访问基类的方法

  $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()

  .': '.$this->getMessage().' is not a valid E-Mail address';

  return $errorMsg;

  }

  }

  $email = "[email protected]";

  try

  {

  //check if

  if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)

  {

  //throw exception if email is not valid

  throw new customException($email);

  }

  }

  catch (customException $e)

  {

  //display custom message

  echo $e->errorMessage();

  }

  ?>

  这个新的类是旧的exception 类的副本,外加 errorMessage() 函数。正因为它是旧类的副本,因此它从旧类继承了属性和方法,我们可以使用 exception 类的方法,比如 getLine() 、getFile() 以及 getMessage()。

  多个异常

  可以为一段脚本使用多个异常,来检测多种情况。

  可以使用多个if..else 代码块,或一个 switch 代码块,或者嵌套多个异常。这些异常能够使用不同的 exception 类,并返回不同的错误消息:



  • php楂樼骇鏁欑▼
    绛旓細涓绉嶆柟寮忔槸浠庤〃鍗曚紶閫掓暟鎹(鏈夊叧琛ㄥ崟鍜岀敤鎴疯緭鍏ョ殑鍐呭,绋嶆棭鍓嶆垜浠凡缁忓湪鏈鏁欑▼涓粙缁嶈繃浜)銆 涓嬮潰鐨勮〃鍗曞湪鐢ㄦ埛鍗曞嚮鎻愪氦鎸夐挳鏃跺悜"welcome.php" 鎻愪氦浜嗙敤鎴疯緭鍏: Name: Age: 鍙栧洖"welcome.php" 涓殑鍊,灏卞儚杩欐牱: Welcome . You are years old. 鍥涖PHP Sessions PHP Session 鍙橀噺 褰撴偍杩愯涓涓簲鐢ㄧ▼搴忔椂,鎮...
  • PHP楂樼骇搴旂敤閮芥湁浠涔堣绋?
    绛旓細濡傛灉浣犳兂瑕佸線鏋舵瀯甯堟垨TL鐨勬柟鍚戝彂灞曠殑璇濓紝閭f垨璁镐綘鍙互鐪嬩竴涓嬫垜鍒嗕韩缁欎綘鐨勮繖浠借繘闃惰矾绾垮浘锛屼富瑕侀拡瀵1鍒5骞村強浠ヤ笂鐨PHP寮鍙戜汉鍛橈紝閲岄潰鐨勬妧鏈寘娑典簡PHP楂樺苟鍙戙佸垎甯冨紡銆佸井鏈嶅姟銆佹鏋跺唴鏍搞侀珮鎬ц兘绛夋妧鏈紒锛佽繕鍑嗗浜嗕竴濂椾腑楂樼骇杩涢樁瀛︿範鏁欑▼锛屾瘡澶╄繕鏈12骞寸殑鏋舵瀯甯堝仛璁茶В锛岄渶瑕佸彲鍏虫敞鏈ご鏉″彿锛屽苟涓斿彂閫佸挩璇㈠叧閿...
  • 璋佹湁php鏁欑▼(鍏)鐨?鍒嗕韩涓涓嬪憲銆
    绛旓細閾炬帴: https://pan.baidu.com/s/1jK3nM2UxdXwTml7bL10POg ?pwd=g5gh 鎻愬彇鐮:g5gh php鏁欑▼(90.24G)29.-react鍓嶅悗绔垎绂(鐢靛奖椤圭洰) 28.灏忕▼搴(laravel鏁欒偛绯荤粺) 27.鍏紬鍙峰紑鍙 26.laravel妗嗘灦 25.-sphinx+椤甸潰闈欐佸寲 24.缃戠珯浼樺寲 23.MongoDB 22.Redis 21.Memcache缂撳瓨璁捐 20 Nginx鏈嶅姟鍣ㄩ泦...
  • 璺眰php濂戒竴鐐圭殑鏁欑▼
    绛旓細閾炬帴: https://pan.baidu.com/s/1cCoVdUCjSq2xNGvHOMs_dA ?pwd=9993 鎻愬彇鐮: 9993 銆2銆戦煩椤哄钩鑰佸笀php浠庡叆闂ㄥ埌绮鹃149璁 涓嬭浇蹇呯湅.txt 娴烽噺绮惧搧寤虹珯璧勬簮灏藉湪闈掗緳寤虹珯鏁欑▼鑷缃.zip 鏇村寤虹珯鏁欑▼璇风偣鍑昏繖閲.url 鐐瑰嚮鑾峰彇瑙e帇瀵嗙爜.url 绗149璁 寮鍙戣嚜宸辩殑缃戜笂鏀粯骞冲彴鈶-闃叉鍥炶皟椤甸潰鍒锋柊.wmv 绗1...
  • php瑙嗛鏁欑▼ 缃戠洏
    绛旓細銆PHP鑷瑙嗛鏁欑▼銆 鍒3绡囧叡22绔狅紝鍏朵腑锛岀1绡囦负鍏ラ棬绡囷紝涓昏鍖呮嫭浜嗚ВPHP銆丳HP寮鍙戠幆澧冩惌寤恒丳HP寮鍙戝熀纭銆丳HP娴佺▼鎺у埗璇彞銆佸嚱鏁般佸瓧绗︿覆鎿嶄綔銆佹鍒欒〃杈惧紡銆丳HP鏁扮粍銆丳HP涓嶹eb椤甸潰浜や簰銆佹棩鏈熷拰鏃堕棿绛夊唴瀹癸紱绗2绡囦负鎻愰珮绡囷紝涓昏鍖呮嫭MySQL鏁版嵁搴撹璁°丳HP鎿嶄綔MySQL鏁版嵁搴撱丆ookie鍜孲ession銆佸浘褰㈠浘鍍忓鐞...
  • PHP 6涓嶮ySQL 5鍩虹鏁欑▼鐩綍
    绛旓細浠ヤ笅涓PHP 6涓嶮ySQL 5鍩虹鏁欑▼鐩綍鐨勬瑕侊紝娑电洊浜嗕粠鍩烘湰姒傚康鍒楂樼骇搴旂敤鐨勫唴瀹广傜1绔 PHP鍩虹鍏ラ棬 1.1 鍩烘湰璇硶锛氱悊瑙HP鐨勫熀鏈粨鏋勫拰璇硶瑙勫垯銆1.2 鍙戦佹暟鎹埌web娴忚鍣細瀛︿範濡備綍鏋勯犲拰杈撳嚭缃戦〉鍐呭銆1.3 缂栧啓娉ㄩ噴锛氭帉鎻′唬鐮佹敞閲婄殑浣跨敤锛屾彁鍗囦唬鐮佸彲璇绘с1.4 鍙橀噺锛氱悊瑙e彉閲忕殑姒傚康锛屽浣曞0鏄庡拰浣跨敤...
  • php瑙嗛鏁欑▼
    绛旓細閾炬帴:https://pan.baidu.com/s/1VCg_NvUyGAVr9JOwHKrasA 鎻愬彇鐮:cykjPHP鍩虹瑙嗛|day7_瑙嗛|day6_瑙嗛|day5_瑙嗛|day4_瑙嗛|day3_瑙嗛|day2-瑙嗛|day1 瑙嗛|瀛︿範姹傚姪鎴栬祫婧愮储鍙栵紝璇峰姞Q2885620350.txt|瀵瑰簲绗旇 PPT 妯℃澘 婧愮爜涓嬭浇鍦板潃.zip|PHP瀛︿範璺嚎鍥炬洿鏂拌鏄.txt|2017榛戦┈PHP鐝嶈吹瀛︿範璧勬簮...
  • 寮虹儓鎺ㄨ崘!!PHP鑿滈笩瀛︿範璺嚎浣犲煎緱涓鐪!
    绛旓細棣栧厛锛岃笍涓PHP瀛︿範涔嬫梾锛屼綘闇瑕佺悊瑙e熀纭鐨勭綉椤靛厓绱犮備粠HTML/CSS/JS鐨勬帉鎻″紑濮嬶紝閫愭鏋勫缓璧峰闈欐佺綉椤电殑椹鹃┉鑳藉姏锛岀啛鎮夊厓绱犲睘鎬х殑杩愮敤銆傝繖鏄紑鍙戠綉绔欑殑鍩虹煶锛屽彧鏈変翰鎵嬪疄璺碉紝鎵嶈兘娣卞埢鐞嗚В鍏冪礌鐨勪綔鐢紙HTML鍏冪礌鐨勮繍鐢ㄥ拰瀹炶返鑷冲叧閲嶈锛夈傜浜岄樁娈碉紝鍔ㄦ佽瑷鐨勯棬鎵撳紑浜嗐傜悊瑙HP鐨勫姩鎬佹満鍒讹紝鎺屾彙鍩烘湰璇硶锛屽皾璇曞皢...
  • PHP浠庡叆闂ㄥ埌绮鹃鏁欑▼鍝噷鏈?
    绛旓細PHP浠庡叆闂ㄥ埌绮鹃鏁欑▼棰勮 PHP浠庡叆闂ㄥ埌绮鹃氭暀绋嬮瑙 PHP浠庡叆闂ㄥ埌绮鹃氳祫婧愭埅鍥 PHP浠庡叆闂ㄥ埌绮鹃氳祫婧愭埅鍥 PHP浠庡叆闂ㄥ埌绮鹃氳祫婧愭埅鍥 鏈PHP浠庡叆闂ㄥ埌绮鹃氭暀瀛﹀寘鍚(瑙嗛璁茶В銆丳PT璁茶В鍙婂紑鍙戣祫婧愬簱)绛夊涓祫婧愪緵鎮ㄩ夋嫨銆傞鍙栨柟寮忥細1銆佸叧娉ㄥ叕浼楀彿椴搁奔寰 2銆佸彂閫佸叧閿瘝PHP 2銆佹坊鍔犲鏈峍X 3銆佸厤璐硅幏鍙 ...
  • php澶氱嚎绋鏁欑▼?
    绛旓細PHP+shell瀹炵幇澶氱嚎绋嬬殑鏂规硶 鍏堝啓涓畝鍗曠殑php浠g爜锛岃繖閲屼负浜嗚鑴氭湰鎵ц鏃堕棿鏇撮暱锛屾柟渚跨湅鏁堟灉锛宻leep涓涓嬶紝鍛靛懙!鍏堢湅涓媡est.php鐨勪唬鐮侊細ls PHP浠g爜:for($i=0;$i<10;$i++){ echo$i;sleep(10);} ?> 鍦ㄧ湅涓媠hell鑴氭湰鐨勪唬鐮侊紝闈炲父绠鍗 !/bin/bash foriin12345678910 do /usr/bin/php-q/var/...
  • 扩展阅读:php下载安装 ... 免费php模板 ... php视频教程全集 ... php个人总结 ... php自学教程入门 ... photoshop入门教学 ... php官方网站 ... php学习电子书php教程 ... php入门开发实战 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网