[php学习资料] PHP完全自学手册(文档教程)

[复制链接]
 楼主| 发表于 2019-11-19 16:58:23 | 显示全部楼层
PHP 实例 - AJAX 与 XML
AJAX 可用来与 XML 文件进行交互式通信。

AJAX XML 实例
下面的实例将演示网页如何通过 AJAX 从 XML 文件读取信息:
实例 Select a CD: Bob Dylan Bee Gees Cat Stevens
CD info will be listed here...



实例解释 - HTML 页面
当用户在上面的下拉列表中选择某张 CD 时,会执行名为 "showCD()" 的函数。该函数由 "onchange" 事件触发:
  1. <html><head><script>function showCD(str){
  2.         if (str=="")
  3.         {
  4.                 document.getElementById("txtHint").innerHTML="";
  5.                 return;
  6.         }
  7.         if (window.XMLHttpRequest)
  8.         {
  9.                 // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行
  10.                 xmlhttp=new XMLHttpRequest();
  11.         }
  12.         else
  13.         {
  14.                 // IE6, IE5 浏览器执行
  15.                 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  16.         }
  17.         xmlhttp.onreadystatechange=function()
  18.         {
  19.                 if (xmlhttp.readyState==4 && xmlhttp.status==200)
  20.                 {
  21.                         document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
  22.                 }
  23.         }
  24.         xmlhttp.open("GET","getcd.php?q="+str,true);
  25.         xmlhttp.send();}</script></head><body><form>Select a CD:<select name="cds" onchange="showCD(this.value)"><option value="">Select a CD:</option><option value="Bob Dylan">Bob Dylan</option><option value="Bonnie Tyler">Bonnie Tyler</option><option value="Dolly Parton">Dolly Parton</option></select></form><div id="txtHint"><b>CD info will be listed here...</b></div></body></html>
复制代码

showCD() 函数会执行以下步骤:
  • 检查是否有 CD 被选择
  • 创建 XMLHttpRequest 对象
  • 创建在服务器响应就绪时执行的函数
  • 向服务器上的文件发送请求
  • 请注意添加到 URL 末端的参数(q)(包含下拉列表的内容)


PHP 文件
上面这段通过 JavaScript 调用的服务器页面是名为 "getcd.php" 的 PHP 文件。
PHP 脚本加载 XML 文档,"cd_catalog.xml",运行针对 XML 文件的查询,并以 HTML 返回结果:
  1. <?php
  2. $q=$_GET["q"];$xmlDoc = new DOMDocument();$xmlDoc->load("cd_catalog.xml");$x=$xmlDoc->getElementsByTagName('ARTIST');for ($i=0; $i<=$x->length-1; $i++){
  3.         // 处理元素节点
  4.         if ($x->item($i)->nodeType==1)
  5.         {
  6.                 if ($x->item($i)->childNodes->item(0)->nodeValue == $q)
  7.                 {
  8.                         $y=($x->item($i)->parentNode);
  9.                 }
  10.         }}$cd=($y->childNodes);for ($i=0;$i<$cd->length;$i++){
  11.         // 处理元素节点
  12.         if ($cd->item($i)->nodeType==1)
  13.         {
  14.                 echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
  15.                 echo($cd->item($i)->childNodes->item(0)->nodeValue);
  16.                 echo("<br>");
  17.         }}?>
复制代码

当 CD 查询从 JavaScript 发送到 PHP 页面时,将发生:
  • PHP 创建 XML DOM 对象
  • 查找所有 <artist> 元素中与 JavaScript 所传数据相匹配的名字
  • 输出 album 的信息,并发送回 "txtHint" 占位符


腾讯云
回复

使用道具 举报

 楼主| 发表于 2019-11-19 16:59:51 | 显示全部楼层
PHP 实例 - AJAX 实时搜索
AJAX 可为用户提供更友好、交互性更强的搜索体验。

AJAX Live Search
在下面的实例中,我们将演示一个实时的搜索,在您键入数据的同时即可得到搜索结果。
实时的搜索与传统的搜索相比,具有很多优势:
  • 当键入数据时,就会显示出匹配的结果
  • 当继续键入数据时,对结果进行过滤
  • 如果结果太少,删除字符就可以获得更宽的范围

在下面的文本框中输入 "HTML",搜索包含 HTML 的页面:
上面实例中的结果在一个 XML 文件(links.xml)中进行查找。为了让这个例子小而简单,我们只提供 6 个结果。

实例解释 - HTML 页面
当用户在上面的输入框中键入字符时,会执行 "showResult()" 函数。该函数由 "onkeyup" 事件触发:
  1. <html><head><script>function showResult(str){
  2.         if (str.length==0)
  3.         {
  4.                 document.getElementById("livesearch").innerHTML="";
  5.                 document.getElementById("livesearch").style.border="0px";
  6.                 return;
  7.         }
  8.         if (window.XMLHttpRequest)
  9.         {// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行
  10.                 xmlhttp=new XMLHttpRequest();
  11.         }
  12.         else
  13.         {// IE6, IE5 浏览器执行
  14.                 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  15.         }
  16.         xmlhttp.onreadystatechange=function()
  17.         {
  18.                 if (xmlhttp.readyState==4 && xmlhttp.status==200)
  19.                 {
  20.                         document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
  21.                         document.getElementById("livesearch").style.border="1px solid #A5ACB2";
  22.                 }
  23.         }
  24.         xmlhttp.open("GET","livesearch.php?q="+str,true);
  25.         xmlhttp.send();}</script></head><body><form><input type="text" size="30" onkeyup="showResult(this.value)"><div id="livesearch"></div></form></body></html>
复制代码

源代码解释:
如果输入框是空的(str.length==0),该函数会清空 livesearch 占位符的内容,并退出该函数。
如果输入框不是空的,那么 showResult() 会执行以下步骤:
  • 创建 XMLHttpRequest 对象
  • 创建在服务器响应就绪时执行的函数
  • 向服务器上的文件发送请求
  • 请注意添加到 URL 末端的参数(q)(包含输入框的内容)


PHP 文件
上面这段通过 JavaScript 调用的服务器页面是名为 "livesearch.php" 的 PHP 文件。
"livesearch.php" 中的源代码会搜索 XML 文件中匹配搜索字符串的标题,并返回结果:
  1. <?php
  2. $xmlDoc=new DOMDocument();$xmlDoc->load("links.xml");$x=$xmlDoc->getElementsByTagName('link');// 从 URL 中获取参数 q 的值$q=$_GET["q"];// 如果 q 参数存在则从 xml 文件中查找数据if (strlen($q)>0){
  3.         $hint="";
  4.         for($i=0; $i<($x->length); $i++)
  5.         {
  6.                 $y=$x->item($i)->getElementsByTagName('title');
  7.                 $z=$x->item($i)->getElementsByTagName('url');
  8.                 if ($y->item(0)->nodeType==1)
  9.                 {
  10.                         // 找到匹配搜索的链接
  11.                         if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q))
  12.                         {
  13.                                 if ($hint=="")
  14.                                 {
  15.                                         $hint="<a href='" .
  16.                                         $z->item(0)->childNodes->item(0)->nodeValue .
  17.                                         "' target='_blank'>" .
  18.                                         $y->item(0)->childNodes->item(0)->nodeValue . "</a>";
  19.                                 }
  20.                                 else
  21.                                 {
  22.                                         $hint=$hint . "<br /><a href='" .
  23.                                         $z->item(0)->childNodes->item(0)->nodeValue .
  24.                                         "' target='_blank'>" .
  25.                                         $y->item(0)->childNodes->item(0)->nodeValue . "</a>";
  26.                                 }
  27.                         }
  28.                 }
  29.         }}// 如果没找到则返回 "no suggestion"if ($hint==""){
  30.         $response="no suggestion";}else{
  31.         $response=$hint;}// 输出结果echo $response;?>
复制代码

如果 JavaScript 发送了任何文本(即 strlen($q) > 0),则会发生:
  • 加载 XML 文件到新的 XML DOM 对象
  • 遍历所有的 <title> 元素,以便找到匹配 JavaScript 所传文本
  • 在 "$response" 变量中设置正确的 URL 和标题。如果找到多于一个匹配,所有的匹配都会添加到变量。
  • 如果没有找到匹配,则把 $response 变量设置为 "no suggestion"。


回复

使用道具 举报

 楼主| 发表于 2019-11-19 17:00:49 | 显示全部楼层
PHP 实例 - AJAX RSS 阅读器
RSS 阅读器用于阅读 RSS Feed。

AJAX RSS 阅读器
在下面的实例中,我们将演示一个 RSS 阅读器,通过它,来自 RSS 的内容在网页不进行刷新的情况下被载入:
选择一个 RSS-feed: 读取 RSS 数据
RSS-feed 数据列表...

实例解释 - HTML 页面
当用户在上面的下拉列表中选择某个 RSS-feed 时,会执行名为 "showRSS()" 的函数。该函数由 "onchange" 事件触发:
  1. <html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title><script>function showRSS(str){
  2.         if (str.length==0)
  3.         {
  4.                 document.getElementById("rssOutput").innerHTML="";
  5.                 return;
  6.                 }
  7.         if (window.XMLHttpRequest)
  8.         {
  9.                 // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
  10.                 xmlhttp=new XMLHttpRequest();
  11.         }
  12.         else
  13.         {
  14.                 // IE6, IE5 浏览器执行代码
  15.                 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  16.         }
  17.         xmlhttp.onreadystatechange=function()
  18.         {
  19.                 if (xmlhttp.readyState==4 && xmlhttp.status==200)
  20.                 {
  21.                         document.getElementById("rssOutput").innerHTML=xmlhttp.responseText;
  22.                 }
  23.         }
  24.         xmlhttp.open("GET","getrss.php?q="+str,true);
  25.         xmlhttp.send();}</script></head><body><form><select onchange="showRSS(this.value)"><option value="">选择一个 RSS-feed:</option><option value="rss">读取 RSS 数据</option></select></form><br><div id="rssOutput">RSS-feed 数据列表...</div></body></html>
复制代码

showRSS() 函数会执行以下步骤:
  • 检查是否有 RSS-feed 被选择
  • 创建 XMLHttpRequest 对象
  • 创建在服务器响应就绪时执行的函数
  • 向服务器上的文件发送请求
  • 请注意添加到 URL 末端的参数(q)(包含下拉列表的内容)


PHP 文件
文件 rss_demo.xml
上面这段通过 JavaScript 调用的服务器页面是名为 "getrss.php" 的 PHP 文件:
  1. <?php// rss 文件$xml="rss_demo.xml";$xmlDoc = new DOMDocument();$xmlDoc->load($xml);// 从 "<channel>" 中读取元素$channel=$xmlDoc->getElementsByTagName('channel')->item(0);$channel_title = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;$channel_link = $channel->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue;$channel_desc = $channel->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;// 输出 "<channel>" 中的元素echo("<p><a href='" . $channel_link  . "'>" . $channel_title . "</a>");echo("<br>");echo($channel_desc . "</p>");// 输出 "<item>" 中的元素$x=$xmlDoc->getElementsByTagName('item');for ($i=0; $i<=1; $i++) {
  2.         $item_title=$x->item($i)->getElementsByTagName('title')
  3.         ->item(0)->childNodes->item(0)->nodeValue;
  4.         $item_link=$x->item($i)->getElementsByTagName('link')
  5.         ->item(0)->childNodes->item(0)->nodeValue;
  6.         $item_desc=$x->item($i)->getElementsByTagName('description')
  7.         ->item(0)->childNodes->item(0)->nodeValue;
  8.         echo ("<p><a href='" . $item_link        . "'>" . $item_title . "</a>");
  9.         echo ("<br>");
  10.         echo ($item_desc . "</p>");}?>
复制代码

当 RSS feed 的请求从 JavaScript 发送到 PHP 文件时,将发生:
  • 检查哪个 RSS feed 被选中
  • 创建一个新的 XML DOM 对象
  • 在 xml 变量中加载 RSS 文档
  • 从 channel 元素中提取并输出元素
  • 从 item 元素中提取并输出元素



回复

使用道具 举报

 楼主| 发表于 2019-11-19 17:01:46 | 显示全部楼层
PHP 实例 - AJAX 投票
AJAX 投票
在下面的实例中,我们将演示一个投票程序,通过它,投票结果在网页不进行刷新的情况下被显示。
你喜欢 PHP 和 AJAX 吗?是:  
否:  
实例解释 - HTML 页面
当用户选择上面的某个选项时,会执行名为 "getVote()" 的函数。该函数由 "onclick" 事件触发。
poll.html 文件代码如下:
  1. <html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title><script>function getVote(int) {
  2.   if (window.XMLHttpRequest) {
  3.     // IE7+, Firefox, Chrome, Opera, Safari 执行代码
  4.     xmlhttp=new XMLHttpRequest();
  5.   } else {
  6.     // IE6, IE5 执行代码
  7.     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  8.   }
  9.   xmlhttp.onreadystatechange=function() {
  10.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  11.     {
  12.       document.getElementById("poll").innerHTML=xmlhttp.responseText;
  13.     }
  14.   }
  15.   xmlhttp.open("GET","poll_vote.php?vote="+int,true);
  16.   xmlhttp.send();}</script></head><body><div id="poll"><h3>你喜欢 PHP 和 AJAX 吗?</h3><form>是:<input type="radio" name="vote" value="0" onclick="getVote(this.value)"><br>否:<input type="radio" name="vote" value="1" onclick="getVote(this.value)"></form></div></body></html>
复制代码

getVote() 函数会执行以下步骤:
  • 创建 XMLHttpRequest 对象
  • 创建在服务器响应就绪时执行的函数
  • 向服务器上的文件发送请求
  • 请注意添加到 URL 末端的参数(q)(包含下拉列表的内容)


PHP 文件
上面这段通过 JavaScript 调用的服务器页面是名为 "poll_vote.php" 的 PHP 文件:
  1. <?php
  2. $vote = htmlspecialchars($_REQUEST['vote']);// 获取文件中存储的数据$filename = "poll_result.txt";$content = file($filename);// 将数据分割到数组中$array = explode("||", $content[0]);$yes = $array[0];$no = $array[1];if ($vote == 0){
  3.   $yes = $yes + 1;}if ($vote == 1){
  4.   $no = $no + 1;}// 插入投票数据$insertvote = $yes."||".$no;$fp = fopen($filename,"w");fputs($fp,$insertvote);fclose($fp);?><h2>结果:</h2><table>
  5.   <tr>
  6.   <td>是:</td>
  7.   <td>
  8.   <span style="display: inline-block; background-color:green;
  9.       width:<?php echo(100*round($yes/($no+$yes),2)); ?>px;
  10.       height:20px;" ></span>
  11.   <?php echo(100*round($yes/($no+$yes),2)); ?>%  </td>
  12.   </tr>
  13.   <tr>
  14.   <td>否:</td>
  15.   <td>
  16.   <span style="display: inline-block; background-color:red;
  17.       width:<?php echo(100*round($no/($no+$yes),2)); ?>px;
  18.       height:20px;"></span>
  19.   <?php echo(100*round($no/($no+$yes),2)); ?>%  </td>
  20.   </tr></table>
复制代码

当所选的值从 JavaScript 发送到 PHP 文件时,将发生:
  • 获取 "poll_result.txt" 文件的内容
  • 把文件内容放入变量,并向被选变量累加 1
  • 把结果写入 "poll_result.txt" 文件
  • 输出图形化的投票结果


文本文件
文本文件(poll_result.txt)中存储来自投票程序的数据。
它存储的数据如下所示:
  1. 3||4
复制代码

第一个数字表示 "Yes" 的投票数,第二个数字表示 "No" 的投票数。
注释:请记得只允许您的 Web 服务器来编辑该文本文件。不要让其他人获得访问权,除了 Web 服务器 (PHP)。


回复

使用道具 举报

 楼主| 发表于 2019-11-19 17:02:23 | 显示全部楼层
PHP 5 Array 函数
PHP Array 简介
PHP Array 函数允许您访问并操作数组。
支持简单的数组和多维数组。

安装
PHP Array 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。

PHP 5 Array 函数
函数
描述
array()创建数组。
array_change_key_case()返回其键均为大写或小写的数组。
array_chunk()把一个数组分割为新的数组块。
array_column()返回输入数组中某个单一列的值。
array_combine()通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。
array_count_values()用于统计数组中所有值出现的次数。
array_diff()比较数组,返回两个数组的差集(只比较键值)。
array_diff_assoc()比较数组,返回两个数组的差集(比较键名和键值)。
array_diff_key()比较数组,返回两个数组的差集(只比较键名)。
array_diff_uassoc()比较数组,返回两个数组的差集(比较键名和键值,使用用户自定义的键名比较函数)。
array_diff_ukey()比较数组,返回两个数组的差集(只比较键名,使用用户自定义的键名比较函数)。
array_fill()用给定的键值填充数组。
array_fill_keys()用给定的指定键名的键值填充数组。
array_filter()用回调函数过滤数组中的元素。
array_flip()反转/交换数组中的键名和对应关联的键值。
array_intersect()比较数组,返回两个数组的交集(只比较键值)。
array_intersect_assoc()比较数组,返回两个数组的交集(比较键名和键值)。
array_intersect_key()比较数组,返回两个数组的交集(只比较键名)。
array_intersect_uassoc()比较数组,返回两个数组的交集(比较键名和键值,使用用户自定义的键名比较函数)。
array_intersect_ukey()比较数组,返回两个数组的交集(只比较键名,使用用户自定义的键名比较函数)。
array_key_exists()检查指定的键名是否存在于数组中。
array_keys()返回数组中所有的键名。
array_map()将用户自定义函数作用到给定数组的每个值上,返回新的值。
array_merge()把一个或多个数组合并为一个数组。
array_merge_recursive()递归地把一个或多个数组合并为一个数组。
array_multisort()对多个数组或多维数组进行排序。
array_pad()将指定数量的带有指定值的元素插入到数组中。
array_pop()删除数组中的最后一个元素(出栈)。
array_product()计算数组中所有值的乘积。
array_push()将一个或多个元素插入数组的末尾(入栈)。
array_rand()从数组中随机选出一个或多个元素,返回键名。
array_reduce()通过使用用户自定义函数,迭代地将数组简化为一个字符串,并返回。
array_replace()使用后面数组的值替换第一个数组的值。
array_replace_recursive()递归地使用后面数组的值替换第一个数组的值。
array_reverse()将原数组中的元素顺序翻转,创建新的数组并返回。
array_search()在数组中搜索给定的值,如果成功则返回相应的键名。
array_shift()删除数组中的第一个元素,并返回被删除元素的值。
array_slice()返回数组中的选定部分。
array_splice()把数组中的指定元素去掉并用其它值取代。
array_sum()返回数组中所有值的和。
array_udiff()比较数组,返回两个数组的差集(只比较键值,使用一个用户自定义的键名比较函数)。
array_udiff_assoc()比较数组,返回两个数组的差集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。
array_udiff_uassoc()比较数组,返回两个数组的差集(比较键名和键值,使用两个用户自定义的键名比较函数)。
array_uintersect()比较数组,返回两个数组的交集(只比较键值,使用一个用户自定义的键名比较函数)。
array_uintersect_assoc()比较数组,返回两个数组的交集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。
array_uintersect_uassoc()比较数组,返回两个数组的交集(比较键名和键值,使用两个用户自定义的键名比较函数)。
array_unique()删除数组中重复的值。
array_unshift()在数组开头插入一个或多个元素。
array_values()返回数组中所有的值。
array_walk()对数组中的每个成员应用用户函数。
array_walk_recursive()对数组中的每个成员递归地应用用户函数。
arsort()对关联数组按照键值进行降序排序。
asort()对关联数组按照键值进行升序排序。
compact()创建一个包含变量名和它们的值的数组。
count()返回数组中元素的数目。
current()返回数组中的当前元素。
each()返回数组中当前的键/值对。
end()将数组的内部指针指向最后一个元素。
extract()从数组中将变量导入到当前的符号表。
in_array()检查数组中是否存在指定的值。
key()从关联数组中取得键名。
krsort()对关联数组按照键名降序排序。
ksort()对关联数组按照键名升序排序。
list()把数组中的值赋给一些数组变量。
natcasesort()用"自然排序"算法对数组进行不区分大小写字母的排序。
natsort()用"自然排序"算法对数组排序。
next()将数组中的内部指针向后移动一位。
pos()current() 的别名。
prev()将数组的内部指针倒回一位。
range()创建一个包含指定范围的元素的数组。
reset()将数组的内部指针指向第一个元素。
rsort()对数值数组进行降序排序。
shuffle()把数组中的元素按随机顺序重新排列。
sizeof()count() 的别名。
sort()对数值数组进行升序排序。
uasort()使用用户自定义的比较函数对数组中的键值进行排序。
uksort()使用用户自定义的比较函数对数组中的键名进行排序。
usort()使用用户自定义的比较函数对数组进行排序。

回复

使用道具 举报

 楼主| 发表于 2019-11-19 17:02:57 | 显示全部楼层
PHP 5 Calendar 函数
PHP Calendar 简介
日历扩展包含了简化不同日历格式间的转换的函数。
它是基于 Julian Day Count(儒略日计数),是从公元前 4713 年 1 月 1 日开始计算的。
注释:如需在日历格式之间转换,必须首先转换为 Julian Day Count,然后再转换为您需要的日历格式。
注释:Julian Day Count(儒略日计数)与 Julian Calendar(儒略历法) 不是一回事!

安装
为了让这些函数能够工作,您必须通过 --enable-calendar 编译 PHP。
PHP 的 Windows 版本已内建了对日历扩展的支持。因此,Calendar 函数会自动工作。

PHP 5 Calendar 函数
函数
描述
cal_days_in_month()针对指定的年份和历法,返回一个月中的天数。
cal_from_jd()把儒略日计数转换为指定历法的日期。
cal_info()返回有关指定历法的信息。
cal_to_jd()把指定历法的日期转换为儒略日计数。
easter_date()返回指定年份的复活节午夜的 Unix 时间戳。
easter_days()返回指定年份的复活节与 3 月 21 日之间的天数。
frenchtojd()把法国共和历法的日期转换成为儒略日计数。
gregoriantojd()把格利高里历法的日期转换成为儒略日计数。
jddayofweek()返回日期在周几。
jdmonthname()返回月的名称。
jdtofrench()把儒略日计数转换为法国共和历法的日期。
jdtogregorian()把儒略日计数转换为格利高里历法的日期。
jdtojewish()把儒略日计数转换为犹太历法的日期。
jdtojulian()把儒略日计数转换为儒略历法的日期。
jdtounix()把儒略日计数转换为 Unix 时间戳。
jewishtojd()把犹太历法的日期转换为儒略日计数。
juliantojd()把儒略历法的日期转换为儒略日计数。
unixtojd()把 Unix 时间戳转换为儒略日计数。
PHP 5 预定义的 Calendar 常量
常量
类型
PHP 版本
CAL_GREGORIANIntegerPHP 4
CAL_JULIANIntegerPHP 4
CAL_JEWISHIntegerPHP 4
CAL_FRENCHIntegerPHP 4
CAL_NUM_CALSIntegerPHP 4
CAL_DOW_DAYNOIntegerPHP 4
CAL_DOW_SHORTIntegerPHP 4
CAL_DOW_LONGIntegerPHP 4
CAL_MONTH_GREGORIAN_SHORTIntegerPHP 4
CAL_MONTH_GREGORIAN_LONGIntegerPHP 4
CAL_MONTH_JULIAN_SHORTIntegerPHP 4
CAL_MONTH_JULIAN_LONGIntegerPHP 4
CAL_MONTH_JEWISHIntegerPHP 4
CAL_MONTH_FRENCHIntegerPHP 4
CAL_EASTER_DEFAULTIntegerPHP 4.3
CAL_EASTER_ROMANIntegerPHP 4.3
CAL_EASTER_ALWAYS_GREGORIANIntegerPHP 4.3
CAL_EASTER_ALWAYS_JULIANIntegerPHP 4.3
CAL_JEWISH_ADD_ALAFIM_GERESHIntegerPHP 5.0
CAL_JEWISH_ADD_ALAFIMIntegerPHP 5.0
CAL_JEWISH_ADD_GERESHAYIMIntegerPHP 5.0

回复

使用道具 举报

 楼主| 发表于 2019-11-19 17:03:24 | 显示全部楼层
PHP cURL 函数
概述
PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。
libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。
PHP中使用cURL实现Get和Post请求的方法
这些函数在PHP 4.0.2中被引入。


需求
为了使用PHP的cURL函数,你需要安装 » libcurl包。
PHP需要使用libcurl 7.0.2-beta 或者更高版本。在PHP 4.2.3 里使用cURL,你需要安装7.9.0或更高版本的libcurl。从PHP 4.3.0开始你需要安装7.9.0或更高版本的libcurl。从PHP 5.0.0开始你需要安装7.10.5或更高版本的libcurl。


安装
要使用PHP的cURL支持你必须在编译PHP时加上--with-curl[=DIR] 选项,DIR为包含lib和include的目录路径。在include目录中必须有一个名为curl,包含了easy.h和curl.h的文件夹。lib文件夹里应该有一个名为libcurl.a的文件。对于PHP 4.3.0你可以配置--with-curlwrappers 使cURL使用URL流。
注意: Win32用户注意 要在Windows环境下使用这个模块,libeay32.dll和ssleay32.dll必须放到PATH环境变量包含的目录下。 不用cURL网站上的libcurl.dll。

资源类型
这个扩展定义了2中资源:cURL句柄和cURL批处理句柄。


PHP cURL 函数
以下包含了PHP cURL函数列表:
函数
描述
curl_close()关闭一个cURL会话。
curl_copy_handle()复制一个cURL句柄和它的所有选项。
curl_errno()返回最后一次的错误号。
curl_error()返回一个保护当前会话最近一次错误的字符串。
curl_escape()返回转义字符串,对给定的字符串进行URL编码。
curl_exec()执行一个cURL会话。
curl_file_create()创建一个 CURLFile 对象。
curl_getinfo()获取一个cURL连接资源句柄的信息。
curl_init()初始化一个cURL会话。
curl_multi_add_handle()向curl批处理会话中添加单独的curl句柄。
curl_multi_close()关闭一组cURL句柄。
curl_multi_exec()运行当前 cURL 句柄的子连接。
curl_multi_getcontent()如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流。
curl_multi_info_read()获取当前解析的cURL的相关传输信息。
curl_multi_init()返回一个新cURL批处理句柄。
curl_multi_remove_handle()移除curl批处理句柄资源中的某个句柄资源。
curl_multi_select()等待所有cURL批处理中的活动连接。
curl_multi_setopt()设置一个批处理cURL传输选项。
curl_multi_strerror()返回描述错误码的字符串文本。
curl_pause()暂停及恢复连接。
curl_reset()重置libcurl的会话句柄的所有选项。
curl_setopt_array()为cURL传输会话批量设置选项。
curl_setopt()设置一个cURL传输选项。
curl_share_close()关闭cURL共享句柄。
curl_share_init()初始化cURL共享句柄。
curl_share_setopt()设置一个共享句柄的cURL传输选项。
curl_strerror()返回错误代码的字符串描述。
curl_unescape()解码URL编码后的字符串。
curl_version()获取cURL版本信息。

回复

使用道具 举报

 楼主| 发表于 2019-11-19 17:03:54 | 显示全部楼层
PHP 5 Date/Time 函数
PHP Date/Time 简介
Date/Time 函数允许您从 PHP 脚本运行的服务器上获取日期和时间。您可以使用 Date/Time 函数通过不同的方式来格式化日期和时间。
注释:这些函数依赖于服务器的本地设置。使用这些函数时请记住要考虑夏令时和闰年。

安装
PHP Date/Time 函数是PHP 核心的组成部分。无需安装即可使用这些函数。

Runtime 配置
Date/Time 函数的行为受到 php.ini 中设置的影响:
名称
描述
默认
PHP 版本
date.timezone规定默认时区(所有的 Date/Time 函数使用该选项)""PHP 5.1
date.default_latitude规定默认纬度(date_sunrise() 和 date_sunset() 使用该选项)"31.7667"PHP 5.0
date.default_longitude规定默认经度(date_sunrise() 和 date_sunset() 使用该选项)"35.2333"PHP 5.0
date.sunrise_zenith规定默认日出天顶(date_sunrise() 和 date_sunset() 使用该选项)"90.83"PHP 5.0
date.sunset_zenith规定默认日落天顶(date_sunrise() 和 date_sunset() 使用该选项)"90.83"PHP 5.0


PHP 5 Date/Time 函数
函数
描述
checkdate()验证格利高里日期。
date_add()添加日、月、年、时、分和秒到一个日期。
date_create_from_format()返回一个根据指定格式进行格式化的新的 DateTime 对象。
date_create()返回一个新的 DateTime 对象。
date_date_set()设置一个新的日期。
date_default_timezone_get()返回默认时区,被所有的 Date/Time 函数使用。
date_default_timezone_set()设置默认时区,被所有的 Date/Time 函数使用。
date_diff()返回两个日期间的差值。
date_format()返回根据指定格式进行格式化的日期。
date_get_last_errors()返回日期字符串中的警告/错误。
date_interval_create_from_date_string()从字符串的相关部分建立一个 DateInterval。
date_interval_format()格式化时间间隔。
date_isodate_set()设置 ISO 日期。
date_modify()修改时间戳。
date_offset_get()返回时区偏移。
date_parse_from_format()根据指定的格式返回一个带有指定日期的详细信息的关联数组。
date_parse()返回一个带有指定日期的详细信息的关联数组。
date_sub()从指定日期减去日、月、年、时、分和秒。
date_sun_info()返回一个包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组。
date_sunrise()返回指定日期与地点的日出时间。
date_sunset()返回指定日期与地点的日落时间。
date_time_set()设置时间。
date_timestamp_get()返回 Unix 时间戳。
date_timestamp_set()设置基于 Unix 时间戳的日期和时间。
date_timezone_get()返回给定 DateTime 对象的时区。
date_timezone_set()设置 DateTime 对象的时区。
date()格式化本地日期和时间。
getdate()返回某个时间戳或者当前本地的日期/时间的日期/时间信息。
gettimeofday()返回当前时间。
gmdate()格式化 GMT/UTC 日期和时间。
gmmktime()返回 GMT 日期的 UNIX 时间戳。
gmstrftime()根据区域设置格式化 GMT/UTC 日期和时间。
idate()格式化本地时间/日期为整数。
localtime()返回本地时间。
microtime()返回当前 Unix 时间戳的微秒数。
mktime()返回一个日期的 Unix 时间戳。
strftime()根据区域设置格式化本地时间/日期。
strptime()解析由 strftime() 生成的时间/日期。
strtotime()将任何英文文本的日期或时间描述解析为 Unix 时间戳。
time()返回当前时间的 Unix 时间戳。
timezone_abbreviations_list()返回包含夏令时、偏移量和时区名称的关联数组。
timezone_identifiers_list()返回带有所有时区标识符的数值数组。
timezone_location_get()返回指定时区的位置信息。
timezone_name_from_ abbr()根据时区缩略语返回时区名称。
timezone_name_get()返回时区的名称。
timezone_offset_get()返回相对于 GMT 的时区偏移。
timezone_open()创建一个新的 DateTimeZone 对象。
timezone_transitions_get()返回时区的所有转换。
timezone_version_get()返回时区数据库的版本。


PHP 5 预定义的 Date/Time 常量
常量
描述
DATE_ATOMAtom (例如:2005-08-15T16:13:03+0000)
DATE_COOKIEHTTP Cookies (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_ISO8601ISO-8601 (例如:2005-08-14T16:13:03+0000)
DATE_RFC822RFC 822 (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC850RFC 850 (例如:Sunday, 14-Aug-05 16:13:03 UTC)
DATE_RFC1036RFC 1036 (例如:Sunday, 14-Aug-05 16:13:03 UTC)
DATE_RFC1123RFC 1123 (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC2822RFC 2822 (例如:Sun, 14 Aug 2005 16:13:03 +0000)
DATE_RSSRSS (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_W3C万维网联盟 (例如:2005-08-14T16:13:03+0000)

回复

使用道具 举报

 楼主| 发表于 2019-11-19 17:04:22 | 显示全部楼层
PHP 5 Directory 函数
PHP Directory 简介
Directory 函数允许您获得关于目录及其内容的信息。

安装
PHP Directory 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。

PHP 5 Directory 函数
函数
描述
chdir()改变当前的目录。
chroot()改变根目录。
closedir()关闭目录句柄。
dir()返回 Directory 类的实例。
getcwd()返回当前工作目录。
opendir()打开目录句柄。
readdir()返回目录句柄中的条目。
rewinddir()重置目录句柄。
scandir()返回指定目录中的文件和目录的数组。

回复

使用道具 举报

 楼主| 发表于 2019-11-19 17:04:50 | 显示全部楼层
PHP Error 和 Logging 函数
PHP Error 和 Logging 简介
Error 和 Logging 函数允许您对错误进行处理和记录。
Error 函数允许用户定义错误处理规则,并修改记录错误的方式。
Logging 函数允许用户对应用程序进行日志记录,并把日志消息发送到电子邮件、系统日志或其他的机器。

执行配置
error 函数受 php.ini 配置文件影响。
错误和日志配置选项:
参数
默认值
描述
可修改范围
error_reportingNULL设置 PHP 的报错级别并返回当前级别(数字或常量)。PHP_INI_ALL
display_errors"1"该选项设置是否将错误信息作为输出的一部分显示到屏幕,或者对用户隐藏而不显示。
注意: 该特性不要在上线生产环境中使用 (在开发测试过程中使用)
PHP_INI_ALL
display_startup_errors"0"即使 display_errors 设置为开启, PHP 启动过程中的错误信息也不会被显示。强烈建议除了调试目的以外,将 display_startup_errors 设置为关闭。PHP_INI_ALL
log_errors"0"设置是否将脚本运行的错误信息记录到服务器错误日志或者error_log之中。注意,这是与服务器相关的特定配置项。PHP_INI_ALL
log_errors_max_len"1024"设置 log_errors 的最大字节数. 在 error_log 会添加有关错误源的信息。默认值为1024,如果设置为0表示不限长度。该长度设置对记录的错误,显示的错误,以及 $php_errormsg都会有限制作用。PHP_INI_ALL
ignore_repeated_errors"0"不记录重复的信息。重复的错误必须出现在同一个文件中的同一行代码上,除非 ignore_repeated_source 设置为true。PHP_INI_ALL
ignore_repeated_source"0"忽略重复消息时,也忽略消息的来源。当该设置开启时,重复信息将不会记录它是由不同的文件还是不同的源代码行产生的。PHP_INI_ALL
report_memleaks"1"如果这个参数设置为Off,则内存泄露信息不会显示 (在 stdout 或者日志中)。PHP_INI_ALL
track_errors"0"如果开启,最后的一个错误将永远存在于变量 $php_errormsg 中。PHP_INI_ALL
html_errors"1"在错误信息中关闭HTML标签。PHP_INI_ALL
PHP_INI_SYSTEM in PHP <= 4.2.3.
xmlrpc_errors"0"关闭正常的错误报告,并将错误的格式设置为XML-RPC错误信息的格式。PHP_INI_SYSTEM
xmlrpc_error_number"0"用作 XML-RPC faultCode 元素的值。PHP_INI_ALL
docref_root""新的错误信息格式包含了对应的参考页面,该页面对错误进行具体描述,或者描述了导致该错误发生的函数。
为了提供手册的页面,你可以在PHP官方站点下载对应语言的手册,并在ini中设置网址到本地对应的地址。
如果你的本地手册拷贝可以使用"/manual/" 访问,你就可以简单的设置 docref_root=/manual/。
另外你还需要设置 docref_ext 匹配你本地文件的后缀名 docref_ext=.html。当然也可以设置一个外部的参考地址。
例如你可以设置 docref_root=http://manual/en/ 或者 docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"
PHP_INI_ALL
docref_ext""参见 docref_root.PHP_INI_ALL
error_prepend_stringNULL错误信息之前输出的内容。PHP_INI_ALL
error_append_stringNULL错误信息之后输出的内容。PHP_INI_ALL
error_logNULL设置脚本错误将被记录到的文件。该文件必须是web服务器用户可写的。PHP_INI_ALL

安装
Error 和 Logging 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。

PHP Error 和 Logging 函数
PHP:指示支持该函数的最早的 PHP 版本。
函数
描述
PHP
debug_backtrace()生成 backtrace。4
debug_print_backtrace()打印 backtrace。5
error_get_last()获得最后发生的错误。5
error_log()向服务器错误记录、文件或远程目标发送一个错误。4
error_reporting()规定报告哪个错误。4
restore_error_handler()恢复之前的错误处理程序。4
restore_exception_handler()恢复之前的异常处理程序。5
set_error_handler()设置用户自定义的错误处理函数。4
set_exception_handler()设置用户自定义的异常处理函数。5
trigger_error()创建用户自定义的错误消息。4
user_error()trigger_error() 的别名。4


PHP Error 和 Logging 常量
PHP:指示支持该常量的最早的 PHP 版本。
常量
描述
PHP
1E_ERROR运行时致命的错误。不能修复的错误。停止执行脚本。
2E_WARNING运行时非致命的错误。没有停止执行脚本。
4E_PARSE编译时的解析错误。解析错误应该只由解析器生成。
8E_NOTICE运行时的通知。脚本发现可能是一个错误,但也可能在正常运行脚本时发生。
16E_CORE_ERRORPHP 启动时的致命错误。这就如同 PHP 核心的 E_ERROR。4
32E_CORE_WARNINGPHP 启动时的非致命错误。这就如同 PHP 核心的 E_WARNING。4
64E_COMPILE_ERROR编译时致命的错误。这就如同由 Zend 脚本引擎生成的 E_ERROR。4
128E_COMPILE_WARNING编译时非致命的错误。这就如同由 Zend 脚本引擎生成的 E_WARNING。4
256E_USER_ERROR用户生成的致命错误。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_ERROR。4
512E_USER_WARNING用户生成的非致命错误。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_WARNING。4
1024E_USER_NOTICE用户生成的通知。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_NOTICE。4
2048E_STRICT运行时的通知。PHP 建议您改变代码,以提高代码的互用性和兼容性。5
4096E_RECOVERABLE_ERROR可捕获的致命错误。这就如同一个可以由用户定义的句柄捕获的 E_ERROR(见 set_error_handler())。5
6143E_ALL所有的错误和警告的级别,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 将作为 E_ALL的一部分)。5


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩图文



在线客服(工作时间:9:00-22:00)
400-600-6565

内容导航

微信客服

Copyright   ©2015-2019  云服务器社区  Powered by©Discuz!  技术支持:尊托网络     ( 湘ICP备15009499号-1 )