您的位置:

首页 >

腾博会官网9888 >

set_include_path在win和linux下的区别 >

set_include_path在win和linux下的区别

2016-03-15 05:23:14

分类:腾博会官网9888

刚刚调式程序,本来在服务器上好好的程序到了win下居然出错。 后来仔细调式才发现是set_include_path的问题。 在win下,当你要include多个路径的话,你要用“;”隔开,但在linux下就使用":"隔开的。。Zendframe 中的include path 设置2007-06-29 11:55ZF的例子中的include_path感觉不行, 会破坏已有的设置, 所以我感觉, 要这样设置更好: //Include Path setting set_include_path(get_include_path() . PATH_SEPARATOR . __APP_ROOT_PATH__ . 'Library' . DIRECTORY_SEPARATOR . 'ZF' . DIRECTORY_SEPARATOR); require 'Zend/Loader.php'; get_include_path()       是获得系统当前的inc_path路径.  __APP_ROOT_PATH__      是我自己设置的一个常量,代表当前的目录. PATH_SEPARATOR     这个可要说一下了, 因为WIN下的path是用 ; (分号) 来分割的, 但LINUX下是用 : (冒号) 来分割,所以要用这个常量来代表 分割符. 这样设置后, 在WIN和LINUX下,

PHP Ctype扩展是PHP4.2开始就内建的扩展,注意,Ctype系列函数都只有一个字符串类型参数,它们返回布尔值。复制代码 代码如下:$str = "0.1123";//检查字符串所有字符是否为数字echo "ctype_digit:" . ctype_digit($str);  //空//检测是否为数字字符串,可为负数和小数echo "is_numberic:" . is_numeric($str); //1从上面可以看出ctype_digit()和is_numberic()的区别。中文翻译Ctype函数是PHP内置的字符串体测函数。主要有以下几种ctype_alnum -- Check for alphanumeric character(s)检测是否是只包含[A-Za-z0-9]ctype_alpha -- Check for alphabetic character(s)检测是否是只包含[A-Za-z]ctype_cntrl -- Check for control character(s)检查是否是只包含类是“\n\r\t”之类的字 符控制字符ctype_digit -- Check for numeric character(s)检查时候是只包含数字字符的字符串(0-9)ctype_graph -- Check for any printable character(s) except space检查是否是只包含有可以打印出来的字符(除了空格)的字符串ctype_lower -- Check for lowercase character(s)检查是否所有的字符都是英文字母,并且都是小写的ctype_print -- Check for printable character(s)检查是否是只包含有可以打印出来的字符的字符串ctype_punct -- Check for any printable character which is not whitespace or an alphanumeric character检查是否是只包含非数字/字符/空格的可打印出来的字符ctype_space -- Check for whitespace character(s)检查是否是只包含类是“ ”之类的字符和空格ctype_upper -- Check for uppercase character(s)检查是否所有的字符都是英文字母,并且都是大写的ctype_xdigit -- Check for character(s) representing a hexadecimal digit检查是否是16进制的字符串,只能包括 “0123456789abcdef”有示例的哟我们平常在遇到要对一些表单做简单过滤的时候,往往不太愿意写正则,而且在效率上,正则也是影响PHP运行速度的原因之一,所以在能不试用正则的时候尽量不试用正则。幸好PHP已经为我们考虑到了这一点,给我提供了Ctype函数。下面对一些Ctype函数做一些简单介绍,以备用:1、ctype_alnum — Check for alphanumeric character(s)   检查字符串中只包含数字或字母,相当于正则[A-Za-z0-9].   有返回值。成功时返回TRUE,失败为FALSE;[复制代码 代码如下:<?php  $strings = array('AbCd1zyZ9', 'foo!#$bar');  foreach ($strings as $testcase) {      if (ctype_alnum($testcase)) {          echo "The string $testcase consists of all letters or digits.\n"; \\ 输出The string AbCd1zyZ9 consists of all letters or digits.      } else {          echo "The string $testcase does not consist of all letters or digits.\n"; \\ 输出 The string foo!#$bar does not consist of all letters or digits.      }  }  ?>  2、ctype_alpha — Check for alphabetic character(s)  检查字符串中只包含字母。  成功时返回TRUE,失败为FALSE;复制代码 代码如下:<?php  $strings = array('KjgWZC', 'arf12');  foreach ($strings as $testcase) {      if (ctype_alpha($testcase)) {          echo "The string $testcase consists of all letters.\n"; \\ 输出 The string KjgWZC consists of all letters.      } else {          echo "The string $testcase does not consist of all letters.\n";<span style="white-space:pre">   </span>\\ 输出 The string arf12 does not consist of all letters.      }  }  ?>  3、ctype_cntrl — Check for control character(s)    检查字符串中是否只包含" '\n' '\r' '\t' " 这样的控制字符。复制代码 代码如下:<?php  $strings = array('string1' => "\n\r\t", 'string2' => 'arf12');  foreach ($strings as $name => $testcase) {      if (ctype_cntrl($testcase)) {          echo "The string '$name' consists of all control characters.\n"; \\ 输出 The string 'string1' consists of all control characters.      } else {          echo "The string '$name' does not consist of all control characters.\n"; \\ The string 'string2' does not consist of all control characters.      }  }  ?>   4、ctype_digit — Check for numeric character(s) 检查字符串中是否只包含数字复制代码 代码如下:<?php  $strings = array('1820.20', '10002', 'wsl!12');  foreach ($strings as $testcase) {      if (ctype_digit($testcase)) {          echo "The string $testcase consists of all digits.\n";      } else {          echo "The string $testcase does not consist of all digits.\n";      }  }  ?

模拟xcopy的函数<?php /************************************** 系统名称:模拟xcopy的函数* 程序功能:模拟xcopy的函数* 开发日期:2003/03/14*************************************/?><?//copy a direction's all files to another direction function xCopy($source, $destination, $child){ //用法: // xCopy("feiy","feiy2",1):拷贝feiy下的文件到 feiy2,包括子目录 // xCopy("feiy","feiy2",0):拷贝feiy下的文件到 feiy2,不包括子目录 //参数说明: // $source:源目录名 // $destination:目的目录名 // $child:复制时,是不是包含的子目录 if(!is_dir($source)){ echo("Error:the $source is not a direction!"); return 0; } if(!is_dir($destination)){ mkdir($destination,0777); } $handle=dir($source); while($entry=$handle->read()) { if(($entry!=".")&&($entry!="..")){ if(is_dir($source."/".$entry)){ if($child) xCopy($source."/".$entry,$destination."/".$entry,$child); } else{ copy($source."/".$entry,$destination."/".$entry); } } } return 1; } ?

短链接就不说了,大家已经都清楚了,如下所示就是短链接: 新浪微博 http://t.cn/SVpONM 腾讯微博 http://url.cn/302yor Yun.io http://d.yun.io/PNri2v 短链接的好处:1、内容需要;2、用户友好;3、便于管理。 如何实现呢,大概有三个步骤: 1、定义一个URL映射算法,可以将长的URL映射成短字符串; 2、使用一个存储(数据库?NoSQL?)来存储完成的映射; 3、实现自己的URL映射算法; 一般来说,第三步是我们比较头疼的,如何将一个长的URL字符串,映射成一个较短的字符串呢。我总结了三种办法: 普通实现 我想以前大家学习过十进制和二进制的互相转换,或者十进制和十六进制的互相转换,那么为了更短,我们可以使用62进制,对于一个数字ID进行转码,转换成一个短字符串。 这种做法的缺点是没有办法保证所有链接都是固定的位数的长度,而且在高并发的情况下,如何保证能够快速分发是个问题。 具体实现方法: 复制代码 代码如下: /** * 利用62进制对数字ID进行短链接编码,缺点不能保证每个短链接是固定长度 * * @author [email protected]> * @param integer $integer * @param string $base */ private function getShortenedURLFromID ($integer, $base = ALLOWED_CHARS) { $length = strlen($base); while($integer > $length - 1) { $out = $base[fmod($integer, $length)] . $out; $integer = floor( $integer / $length ); } return $base[$integer] . $out; } /** * 对62进制编码的短链接进行解码 * * @author [email protected]> * @param string $string * @param string $base */ private function getIDFromShortenedURL ($string, $base = ALLOWED_CHARS) { $length = strlen($base); $size = strlen($string) - 1; $string = str_split($string); $out = strpos($base, array_pop($string)); foreach($string as $i => $char) { $out += strpos($base, $char) * pow($length, $size - $i); } return $out; } 文艺实现 算法描述:使用6个字符来表示短链接,我们使用ASCII字符中的'a'-'z','0'-'5',共计32个字符做为集合。每个字符有32种状态,六个字符就可以表示32^6(1073741824),那么如何得到这六个字符,描述如下: 对传入的长URL进行Md5,得到一个32位的字符串,这个字符串变化很多,是16的32次方,基本上可以保证唯一性。将这32位分成四份,每一份8个字符,这时机率变成了16的8次方,是4294967296,这个数字碰撞的机率也比较小啦,关键是后面的一次处理。我们将这个8位的字符认为是16进制整数,也就是1*('0x'.$val),然后取0-30位,每5个一组,算出他的整数值,然后映射到我们准备的32个字符中,最后就能够得到一个6位的短链接地址。 PHP实现如下: 复制代码 代码如下: function shorten( $long_url ) { $base32 = "abcdefghijklmnopqrstuvwxyz012345"; $hex = md5( $long_url ); $hexLen = strlen( $hex ); $subHexLen = $hexLen / 8; $output = array(); for( $i = 0; $i < $subHexLen; $i++ ) { $subHex = substr( $hex, $i * 8, 8 ); $subHex = 0x3FFFFFFF & ( 1 * ('0x' . $subHex ) );     $out = ''; for( $j = 0; $j < 6; $j++ ) { $val = 0x0000001F & $int; $out .= $base32[$val]; $int = $int >> 5; } $output[] = $out; } return $output; } 二逼实现 下面这个函数使用了纯随机的方式来生成一个短链接,虽然我们可以通过查询操作来确保不重复使用短链接,可是... 这样真的靠谱吗~~ 复制代码 代码如下: function random($length, $pool = '') { $random = ''; if (empty($pool)) { $pool = 'abcdefghkmnpqrstuvwxyz'; $pool .= '23456789'; } srand ((double)microtime()*1000000); for($i = 0; $i < $length; $i++) { $random .= substr($pool,(rand()%(strlen ($pool))), 1); } return $random; } Technorati 标签: 短链接,Short Url,映射,哈希参考资料:

不管页面有多少header,它会执行最后一个,不过是有条件的,例如: header('Location:http://www.jb51.net'); header('Location:http://www.g.cn'); header('Location:http://www.baidu.com'); 这个就会跳到百度 header('Location:http://www.jb51.net');echo '脚本之家'; header('Location:http://www.g.cn'); header('Location:http://www.baidu.com'); 这个就会跳到google 下面是关于header函数的详细使用说明 一、作用: ~~~~~~~~~ PHP只是以HTTP协议将HTML文档的标头送到浏览器,告诉浏览器具体怎么处理这个页面,至于传送的内容则需要熟悉一下HTTP协议了,与PHP无关了 传统的标头一定包含下面三种标头之一,并只能出现一次。 Location: xxxx:yyyy/zzzz Content-Type: xxxx/yyyy Status: nnn xxxxxx 二、先来了解一下HTTP协议的运作方式 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HTTP协议是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是 MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。 它分四个过程,在HTTP协议中,服务端是指提供HTTP服务的部分,客户端是指你使用的浏览器或者下载工具等等。在通讯时,由客户端发出请求连接,服务端建立连接;然后,客户端发出HTTP请求(Request),服务端返回响应信息(Respond),由此完成一个HTTP操作。 三、HTTP协议状态码表示的意思 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1××  保留 2××  表示请求成功地接收 3××  为完成请求客户需进一步细化请求 4××  客户错误 5××  服务器错误 四、操作实例: ~~~~~~~~~~~~~ <1> 重定向功能,这种最常见 <?php Header("Location: http://www.php.net"); ?> <2> 强制用户每次访问这个页面时获取最新资料,而不是使用存在客户端的缓存。 <?php //告诉浏览器此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可。 header("Expires: Mon, 26 Jul 1970 05:00:00 GMT"); //告诉浏览器此页面的最后更新日期(用格林威治时间表示)也就是当天,目的就是强迫浏览器获取最新资料 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); //告诉客户端浏览器不使用缓存 header("Cache-Control: no-cache, must-revalidate"); //参数(与以前的服务器兼容),即兼容HTTP1.0协议 header("Pragma: no-cache"); //输出MIME类型 header("Content-type: application/file"); //文件长度 header("Content-Length: 227685"); //接受的范围单位 header("Accept-Ranges: bytes"); //缺省时文件保存对话框中的文件名称 header("Content-Disposition: attachment; filename=$filename"); ?> <3> 输出状态值到浏览器,主要用于访问权限控制 <?php header('HTTP/1.1 401 Unauthorized'); header('status: 401 Unauthorized'); ?> 比如要限制一个用户不能访问该页,则可设置状态为404,如下所示,这样浏览器就显示为即该页不存在 <?php header('HTTP/1.1 404 Not Found'); header("status: 404 Not Found"); ?> 注意: 传统的标头一定包含下面三种标头之一,并只能出现一次。 Content-Type: xxxx/yyyy Location: xxxx:yyyy/zzzz Status: nnn xxxxxx 在新的多型标头规格 (Multipart MIME) 方可以出现二次以上。 使用范例 范例一: 本例使浏览器重定向到 PHP 的官方网站。 Header("Location: http://www.php.net"); exit; >? 范例二: 要使用者每次都能得到最新的资料,而不是 Proxy 或 cache 中的资料,可以使用下列的标头 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); >? 范例三: 让使用者的浏览器出现找不到档案的信息。 header("Status: 404 Not Found"); >? 范例四:让使用者下载档案。 header("Content-type: application/x-gzip"); header("Content-Disposition: attachment; filename=文件名"); header("Content-Description: PHP3 Generated Data"); >?

焦点访谈

最新最热的文章

更多 >

COPYRIGHT (©) 2017 Copyright ©2017 腾博会官网 网站地图

联系我们

827570882

扫描二维码分享到微信