随笔分类 -  PHP

摘要:转载自百度/其实判断是否是字母和数字或字母数字的组合还可以用PHP ctype_alnum函数if(!ctype_alnum($vipurl)){echo '只能是字母或数字的组合';exit;}顺便复习下ctype functions1.ctype_alnum(string $text)://检查是否是字母或数字或字母数字的 组合2.ctype_alpha(string $text):check for alphabetic character(s) //检查字符串是否是字母3.ctype_cntrl(string $text):check for control chara 阅读全文
posted @ 2013-09-14 16:03 群叔 阅读(7673) 评论(0) 推荐(0)
摘要:一:网上搜索很多PHP算法,经过测试,下面这份比较好...缺点:不能保留汉字以外的字符, 转换的汉字仅仅限于常用的一些,不过已经适用于95%的工作: 原作者 <?php function Pinyin($_String, $_Code='UTF8'){ //GBK页面可改为gb2312,其他随意填写 阅读全文
posted @ 2013-09-11 16:57 群叔 阅读(1424) 评论(0) 推荐(0)
摘要:([^\/]*)\//', $html, $matches); return $matches[1];}if (!empty($_GET['page']) && !empty($_GET['wd'])){//获取到第几页, 关键词 $page = $_GET['page']; $wd = $_GET['wd']; $handle = fopen('url.txt', 'a'); for ( $i = 0 ; $i 阅读全文
posted @ 2013-09-08 21:58 群叔 阅读(760) 评论(0) 推荐(0)
摘要:配置选项phpinfo( ) 函数可用于php.ini文件的定位A.1. allow_url_fopen选项允许你如同本地文件一样引用远程资源:我推荐关闭allow_url_fopen选项,除非你的应用需要它。A.2. disable_functionsdisable_functions选项是非常有... 阅读全文
posted @ 2013-09-01 01:25 群叔 阅读(366) 评论(0) 推荐(0)
摘要:会话数据暴露当你关注于防止源码的暴露时,你的会话数据只同样存在着风险。在默认情况下,SESSION保存在/tmp目录下。这样做在很多情形下是很方便的,其中之一是所有用户都有对/tmp的写入权限,这样Apache同样也有权限进行写入。虽然其他用户不能直接从shell环境读取这些会话文件,但他们可以写一个简单的脚本来进行读取:read()) { if (substr($filename, 0, 5) == 'sess_') { $data = file_get_contents("$path/$filename"); if (!empty($data)) ... 阅读全文
posted @ 2013-09-01 01:14 群叔 阅读(316) 评论(0) 推荐(0)
摘要:考虑下面的HTML表单:CODE:Username: Password: 攻击者会察看这个表单并建立一段脚本来POST合法的数据给http://example.org/login.php:使这段脚本,攻击者还可以简单地加入一个循环来继续尝试不同的密码,并在每次尝试后检查$http_response变量。一旦$http_response变量有变化,就可以认为猜测到了正确的密码。 阅读全文
posted @ 2013-09-01 00:47 群叔 阅读(479) 评论(0) 推荐(0)
摘要:在PHP中,用于删除数组中重复元素有一个可用的函数,那就是 array_unique(), 但是它并不是一个最高效的方法,使用array_flip() 函数将比array_uniqure()在速度上高出五倍左右。究竟是怎么回事呢?来看下array_flip()的作用:array_flip()用于将一个数组的每个元素的键和值交换,如:$arr1 = array (”age” => 30, “name” => “快乐园”);$arr2 = array_flip($arr1); //$arr2 就是 array(30 => “age”, “快乐园” => “name”);在P 阅读全文
posted @ 2013-07-31 21:38 群叔 阅读(315) 评论(0) 推荐(0)
摘要:function mbstringtoarray($str,$charset) { $strlen=mb_strlen($str); while($strlen){ $array[]=mb_substr($str,0,1,$charset); $str=mb_substr($str,1,$strlen,$charset); $strlen=mb_strlen($str); } return $array;}//用法gbk utf-8$arr = mbstringtoarray($str,"gbk");本函数来自:蚂蚁经过测试完美... 阅读全文
posted @ 2013-07-31 11:19 群叔 阅读(895) 评论(0) 推荐(0)
摘要:ceil,floor,round,intval,number_format - 执行1000W此效率对比Header("Content-Type:text/html;charset=utf-8");ini_set('memory_limit','-1');set_time_limit(0);$count = 10000000;$num = 73.1221;$q = time();for($i=0; $i';$w = time();for($i=0; $i';$e = time();for($i=0; $i';$r = 阅读全文
posted @ 2013-07-29 00:31 群叔 阅读(567) 评论(0) 推荐(0)
摘要:之前常用stristr , strpos判断。因为处理1000W * 1000W级别,循环就是漫长漫长...在此,对stristr, strpos, explode判断字符串包含关系处理速度对比:Header("Content-Type:text/html;charset=utf-8");ini_set('memory_limit','-1');set_time_limit(0);$count = 10000000;//循环次数$str1 = 'abcdef';$str2 = 'abce';$str3 = &# 阅读全文
posted @ 2013-07-28 13:28 群叔 阅读(863) 评论(0) 推荐(0)
摘要:1.stristr 忽略大小写$string = 'Hello World!';if(stristr($string, 'earth') === FALSE) {echo '"earth" not found in string';}// 输出: "earth" not found in stringecho stristr($string, 'lo'); //输出 lo World! 阅读全文
posted @ 2013-07-22 13:48 群叔 阅读(258) 评论(0) 推荐(0)
摘要:1. unset删除某一个 特定成员$arr[0] = 0;$arr[1] = 1;$arr[2] = 2;unset($arr[1]);var_dump($arr);array(2) {[0]=>int(0)[2]=>int(2)}问题1:此PHP 用于对关键词去包含词。 当使用unset($arr2[$j]) 会出现莫名其妙的问题。 换方法$arr2[$j]=''; 就好了。释放的资源,就不要再使用了,否则会莫名其妙的问题。 1'; 23 $arr2[$j]=''; 24 } 25 } 26 } 27 28 $handle2 = fope 阅读全文
posted @ 2013-07-22 13:43 群叔 阅读(1329) 评论(0) 推荐(0)
摘要:直接从这位朋友转载过来。 地址Redis::__construct构造函数$redis = new Redis();connect, open链接redis服务参数host: string,服务地址port: int,端口号timeout: float,链接时长 (可选, 默认为 0 ,不限链接时间)注: 在redis.conf中也有时间,默认为300$redis->connect('127.0.0.1',6379);pconnect, popen不会主动关闭的链接参考上面setOption设置redis模式getOption查看redis设置的模式ping查看连接状态g 阅读全文
posted @ 2013-07-13 16:45 群叔 阅读(254) 评论(0) 推荐(0)
摘要:1.str_pad — 使用另一个字符串填充字符串为指定长度 。 我觉得str_pad可以满足普通的数字,字符串的简单填充。string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )该函数返回 input 被从左端、右端或者同时两端被填充到制定长度后的结果。如果可选的 pad_string 参数没有被指定,input 将被空格字符填充,否则它将被 pad_string 填充到指定长度。可选的 pad_typ 阅读全文
posted @ 2013-07-12 17:42 群叔 阅读(1803) 评论(0) 推荐(0)
摘要:案例一: 1 15 string(12) "abcdef123456"16 }17 array(2) {18 [0]=>19 string(12) "abcdef123456"20 [1]=>21 string(1) "6"22 }23 array(2) {24 [0]=>25 string(12) "abcdef123456"26 [1]=>27 string(1) "6"28 }29 ------------------------------------------ 阅读全文
posted @ 2013-07-07 20:29 群叔 阅读(450) 评论(0) 推荐(0)
摘要:代码在ubuntu下无缝运行OK转到我的win7 64位 期间 学习机上 报错:Call to undefined function curl_init()因为用到curl 远程抓取数据。所以谷歌之:总结,win7 64解决方法与win2003不同:1.extension=php_curl.dll2.extension=php_openssl.dll //取消php.ini前面的这2个 注释3.确保php安装目录下 这libeay32.dll ssleay32.dll 2个DLL动态库, 已经被复制到 %System%目录下面。 32为就是c:\windows\system32 64为是... 阅读全文
posted @ 2013-07-07 15:21 群叔 阅读(450) 评论(0) 推荐(0)
摘要:ANSII编码:1 长度是3a 长度是3? 长度是3我 长度是4?长度是2----------------------------UTF-8编码:1 长度是1a长度是1? 长度是1我 长度是3?长度是3\r\n: windows下换行符2以上数据由 strlen() 函数获取 。 阅读全文
posted @ 2013-06-16 23:35 群叔 阅读(163) 评论(0) 推荐(0)
摘要:1 本次总结,str_replace 与 正则替换的顺序很重要。1.因为考虑到str_replace替换后会有,换行符留下。 所以,正则匹配单一换行符,就得在后面.2.因为是替换其他文件的字符串,所以要保证替换的文件的【编码】与PHP编码一致。否则,蛋疼...你会发现除了换行符意外什么都没替换。3... 阅读全文
posted @ 2013-06-16 16:21 群叔 阅读(864) 评论(0) 推荐(0)
摘要:instanceof Class类型判断。 $cat1 = new Cat; if($cat1 instanceof Cat){...}break 2; 跳出2重循环 -- 同理continue 2每个函数开辟新的栈。变量均是相互独立的。"" 双引符号中 $a 变量会被正常解析, '' 单引不会函数地址传递 & 就是C++中的引用类静态属性, 内部访问self:: CLASS:: 类外部CLASS::extends . 子类创建时候不会自动调用父类构造方法interface implements 接口中可以有属性,但必须是常量final关键字fina 阅读全文
posted @ 2013-06-09 09:38 群叔 阅读(181) 评论(0) 推荐(0)
摘要:if($_SERVER['REQUEST_METHOD']=='post'){ $_POST[].... }else if($_SERVER['REQUEST_METHOD']=='get'){ $_GET[]... }//尽量少的选择$_REQUEST获取参数。官方说此全局变量是不可信的 阅读全文
posted @ 2013-06-08 16:58 群叔 阅读(163) 评论(0) 推荐(0)