
php
jiedushi
大数据10年左右工作经验,喜欢工作中遇到的问题与解决整理到博客
展开
-
一维数组中搜索元素,删除二维数组元素
定义一个一维数组一个二维数组如下$fruit=array('apple','orange');$products = array( array('name'=>'apple','price'=>23.4),array('name'=>'orange','price'=>45.3),array('name'=>'biscuit','number'=>5,'price'=>34))原创 2012-11-14 22:29:06 · 2519 阅读 · 0 评论 -
php 调用远程url的六种方法小结
<br /> 详细出处参考:http://www.jb51.net/article/20705.htm<br /><br />示例代码1: 用file_get_contents 以get方式获取内容 <br /> <br /><br /> <br /><?php <br />$url='http://www.baidu.com/'; <br />$html=file_get_contents($url); <br />//print_r($http_response_header); <br />ec($h转载 2010-12-04 10:20:00 · 1047 阅读 · 0 评论 -
超强PHP分页类
<br /><br /><?php<br /> /**<br /> * description:超强分页类,四种分页模式,默认采用类似baidu,google的分页风格。<br /> * 2.0增加功能:支持自定义风格,自定义样式,同时支持PHP4和PHP5,<br /> * example:<br /> * 模式四种分页模式:<br /> * require_once('../libs/classes/page.class.php');<br /> * $page=new page(arr转载 2010-12-01 16:52:00 · 902 阅读 · 0 评论 -
获取指定(访客)IP的所有信息,地址、邮政编码、国家、经纬度等的API
调用方法非常简单。这个也需要数据库来支持。数据库中中文和拼音共存才可以。废话不多说,看代码: true, ); curl_setopt_array($ch,$options); $res = curl_exec($ch); curl_close($ch); if($xml = simplexml_load_s转载 2010-08-02 16:16:00 · 1179 阅读 · 0 评论 -
使用腾迅的api接口,php获取ip地址以及所在城市
http://fw.qq.com/ipaddress返回类似:var IPData = new Array("61.51.71.183","","北京市","");phpfunction get_ip_place(){$ip=file_get_contents(http://fw.qq.com/ipaddress);$ip=str_replace(", ,$ip);$ip2=exp转载 2010-03-10 13:46:00 · 1238 阅读 · 0 评论 -
基于PHPRPC的单点登录(SSO)的实现
PHPRPC是什么:PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。因为PHPRPC有以上诸多特性,那么我们的SSO也可以实现安全、快捷、跨域。所以单点登录,就是用户只需要在中心认证服务器登录一次,然后浏览器通过中心认证服务器返转载 2010-03-10 13:54:00 · 2015 阅读 · 0 评论 -
如何用php代码清空squid缓存下的指定文件
PURGE 是一个特殊的HTTP请求方法。它是Squid 的专有方法,没有在任何RFC 里定义。它让管理员能强制删除缓存对象。既然该方法有些危险,squid 默认拒绝PURGE请求,除非你定义了ACL 引用了该方法。否则,任何能访问cache 者也许能够删除任意缓存对象。我推荐仅仅允许来自localhost的PURGE:acl Purge method PURGEacl L转载 2009-08-04 17:22:00 · 1663 阅读 · 0 评论 -
PHP采集利器:Snoopy 试用心得
Snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。Snoopy的一些特点:* 方便抓取网页的内容* 方便抓取网页的文本内容 (去除HTML标签)* 方便抓取网页的链接* 支持代理主机* 支持基本的用户名/密码验证* 支持设置 user_agent, referer(来路), cookies 和 header content(头文件)* 支持浏览器转载 2009-05-14 15:58:00 · 1261 阅读 · 0 评论 -
PHP取GB2312编码字符串首字母的方法
php取GB2312编码字符串首字母的方法<?php/** @author: [email]zhuyubing@gmail.com[/email]*/$dict=array(a=>0xB0C4,b=>0xB2C0,c=>0xB4ED,d=>0xB6E9,e=>0xB7A1,f=>0xB8C0,g=>0xB9FD,转载 2009-07-21 11:24:00 · 796 阅读 · 0 评论 -
PHP base64_decode+gzinflate压缩编码和解码代码
PHP目前在网络中被用的越来越多,加密解密的话题也一直没有停息过。下面简单介绍一下base64_decode+gzinflate压缩编码和解码代码方法,就是通常我们在程序中见的eval(gzinflate(base64_decode(加密代码))); 形式的加密方法。网山有此类方法,但是由于局部缺少了某些字符,导致了加密后无法使用的情况,大家有兴趣可以去试试看,本人在原基础上做了简单修改,经本转载 2009-07-16 16:11:00 · 2416 阅读 · 0 评论 -
Cron定时执行带参数的PHP代码
http://www.piaoyi.org/php/Cron-PHP-parameter.html 一,依然使用php脚本执行。 command 命令行填写:php /home/piaoyi.org/public_html/cron.php q1 q2然后,在cron.php页面使用 $argv[1] 来获取 q1 第一个参数值, $argv[2] 获取第二个参数 q2 的值; $argv[0] 的值是路径及文件名,在这里为:/home/piaoyi.org/public_html/cron.ph转载 2010-12-04 10:36:00 · 5841 阅读 · 0 评论 -
memcached一致性哈希的php类
<br />来自http://blog.youkuaiyun.com/mayongzhan/archive/2009/06/25/4298834.aspx<br /><?php/** * Flexihash - A simple consistent hashing implementation for PHP. * * The MIT License * * Copyright (c) 2008 Paul Annesley * * Permission is hereby gra原创 2010-12-04 15:20:00 · 1518 阅读 · 1 评论 -
php 操作数组 (合并,拆分,追加,查找,删除等)
1. 合并数组array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:Php代码 array array_merge (array array1 array2…,arrayN) 这个函数将一个或多个数组的单元合并起来,一个数组中的值附加在前一个转载 2012-11-15 13:05:57 · 784 阅读 · 0 评论 -
用jquery与php导出datatables数据到excel
DataTables是一个jQuery的表格插件。这是一个高度灵活的工具,依据的基础逐步增强,这将增加先进的互动控制,支持任何HTML表格。主要特点:自动分页处理即时表格数据过滤数据排序以及数据类型自动检测自动处理列宽度可通过CSS定制样式支持隐藏列易用可扩展性和灵活性国际化动态创建表格免费的 插件地址http://www.datatables.net/不过可惜的是官方网站表格数原创 2012-11-02 10:56:17 · 6804 阅读 · 1 评论 -
php导出中文内容excel文件类
<?phpclass toExcel{ public $link = null; function __construct(){ } /*************************************************************************** * $mapping:数组格式头信息$map=array('No转载 2012-10-08 14:12:11 · 1913 阅读 · 0 评论 -
PHP中二维数组的排序方法
本文介绍的是从 BugFree 摘录来的二维数组排序函数,可以实现类似 MySQL 的 ORDER BY 效果,当数组不是从数据库取得时会有特殊应用。<?php// 说明:PHP中二维数组的排序方法// 整理:http://www.CodeBit.cn /** * @package BugFree * @version $Id: FunctionsMai转载 2012-09-13 09:01:55 · 913 阅读 · 0 评论 -
php引用&符号详解
<br /> <br />hp的引用(就是在变量或者函数、对象等前面加上&符号)<br />在PHP 中引用的意思是:不同的名字访问同一个变量内容.<br /> <br />变量的引用<br />PHP 的引用允许你用两个变量来指向同一个内容<br />例一:<br /><?php<br />$a="2010";<br />$b =&$a;<br />echo $a;//这里输出:2010<br />echo $b;//这里输出:2010<br />$b="2012";<br />echo $a;//这里$转载 2011-05-18 09:11:00 · 20581 阅读 · 1 评论 -
PHP多进程并发控制的测试用例
<br />转http://blog.s135.com/post/311/<br /> <br />最近遇到一个问题,Linux下的PHP命令行程序作为守护进程,需要从队列文件中读一行数据,通过TCP协议发送给外地的接收服务器,再读下一行数据,再发送。当本地与外地的网络状况不好时,有时候发送一条数据所耗费的时间就较长,累积起来容易造成队列堵塞和延迟。<br /><br /> 于是,我准备用该PHP命令行程序生成多个子进程,将串行处理变成并行处理。最简单的方法就是在PHP中用exec()或popen()函数转载 2010-12-04 10:26:00 · 815 阅读 · 0 评论 -
用PHP遍历目录下的全部文件
<br /> <br />第一种实现办法是用dir返回对象,第二种实现办法:用readdir()函数。<br /> <br /> <br /><?php/**********************一个简单的目录递归函数第一种实现办法:用dir返回对象***********************/function tree($directory) { $mydir = dir($directory); echo "<ul>/n"; while($file = $m转载 2010-12-02 11:31:00 · 815 阅读 · 0 评论 -
PHP遍历关联数组的方法介绍
在PHP中数组分为两类: 数字索引数组和关联数组。其中数字索引数组和C语言中的数组一样,下标是为0,1,2…而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似。下面介绍PHP中遍历关联数组的三种方法:foreach 'good', 'swimming' => 'very well', 'running' => 'not good' ); foreach ($sports as $key => $value) { echo $key.": "转载 2010-12-02 11:22:00 · 8631 阅读 · 0 评论 -
多memcached 和 mysql 主从 环境下PHP开发
一般的大站通常做法是拿着内存当数据库来用(memcached).和很好的读/写分离备份机制 (master/slave)config.php配置文件 array('192.168.254.144',11211), 'en'=>array('192.168.254.144',11212) ); // mysql 的master/slave(master:RedHat5;slave:RedHat9) $mysql = array( 'master转载 2010-12-04 15:22:00 · 972 阅读 · 0 评论 -
转:获取电信,网通,铁通APNIC权威IP数据集[PHP源程序]
本文来自死性不改的博客 http://www.clxp.net.cn 转载请保留此申明!其实我们可以通过whois查询电信网通铁通的官方权威IP集数据现写个程序,能生成三方IP集,及自动生成路由表把下面的程序保存为 xxx.php 然后运行 php xxx.php需要PHP的环境,FreeBSD下测试的,在WINDOWS下跑不起来。原文地址:http://bbs.routerclub.com/th原创 2008-12-22 15:56:00 · 2308 阅读 · 0 评论 -
PHP使用eval(gzinflate(str_rot13(base64_decode('BASE64加密后内容'))))核心代码的解密
//已经加密的文件内容 $a="eval(gzinflate(str_rot13(base64_decode(加密后base_decode括号之间的代码))));"; function decodephp($a) { $max_level=300; //最大层数 for($i=0;$i ob_start(); eval(str_replace(eval,echo,$a转载 2008-12-16 13:54:00 · 3837 阅读 · 0 评论 -
Apache Mysql 在windows 需要的权限
非本地系统账户运行apache2的权限设定apache安装目录,赋予该帐号修改权限。apache安装目录所在驱动器根,赋予该帐号列目录权限。相应的DocumentRoot账号根据需要赋予不同的权限。DocumentRoot所在的驱动器根,也需要有列目录权限。如果不在这设置会报错:Apache2 服务因 1 (0x1) 服务性错误而停止。和IIS占用80端口报错情况一下,但其实是权限转载 2008-12-15 16:43:00 · 901 阅读 · 0 评论 -
$_SERVER的用法
$_SERVER["PHP_SELF"] #当前正在执行脚本的文件名,与 document root相关。 $_SERVER["argv"] #传递给该脚本的参数。 $_SERVER["argc"] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。 $_SERVER["GATEWAY_INTERFACE"] #服务器使用的 CGI转载 2008-08-01 11:31:00 · 858 阅读 · 0 评论 -
htaccess文件的功能写法
1.配置.htaccess 自定义错误页 我要介绍的.htaccess的第一个应用是自定义错误页面,这将使你可以拥有自己的、个性化的错误页面(例如找不到文件时),而不是你的服务商提供的错误页或没有任何页面。这会让你的网站在出错的时候看上去更专业。你还可以利用脚本程序在发生错误的时候通知你(例如我使用Free Webmaster Help的PHP脚本程序,当找不到页面的时候自动e-mail给我)。转载 2008-08-01 11:25:00 · 2027 阅读 · 0 评论 -
PHP 数字左侧自动补0
例来说:员工的工号 X001 虽然 MySQL 本身的字段设定成 zerofill 的属性时,会将不足位数的部份补上0,但是这个功能只能用在数字的字段上面。 所以必要的时候只好靠PHP来进行了。 PHP代码 $sourceNumber = "1"; $newNumber = substr(strval($sourceNumber+1000),1,3)转载 2008-08-01 11:24:00 · 2344 阅读 · 0 评论 -
file_get_contents函数不能使用的解决方法
有些主机服务商把php的allow_url_fopen选项是关闭了,就是没法直接使用file_get_contents来获取远程web页面的内容(采集和小偷程序常用)。那就是可以使用另外一个函数curl。下面是file_get_contents和curl两个函数同样功能的不同写法file_get_contents函数的使用示例: PHP代码 $file_conten转载 2008-08-01 11:23:00 · 2274 阅读 · 0 评论 -
配合实例学习php正则的使用
基本语法:“^The”:以”The”开头“of despair$”:以”of despair”结尾“^abc$”:字符串”abc”“notice”:包含”notice”的字符串就像最后一个例子一样,如果没有定义边界符号,就相当于在当前字符串里查找该字符串。最常用的”*”,”+”,”?”分别指”出现0次或多次”,”出现1次或多次”,”出现0次或1次”“ab*”:匹配”a”,”ab”,”abbb”“a转载 2008-08-01 11:21:00 · 754 阅读 · 0 评论 -
加快php程序的输出
动态网站的内容加速显示十分重要,本文通过对 PHP 几个函数的深入讨论,提出了 PHP 网页压缩和缓冲的解决方案一、介绍几个控制 PHP 输出的函数PHP4 采用了缓冲机制,在你决定发送以前,所有内容只是存在于缓冲中,而不是直接发送给浏览器,虽然你可以用 header 和 setcookie 函数来实现,但是这两个函数相比于功能强大的输出函数来说只是一点“雕虫小技”。让我们来看看这些函数的真本转载 2008-08-01 11:17:00 · 700 阅读 · 0 评论 -
php代码效率测试
PHP代码$GLOBALS[_start_time_] = array_sum(explode( , microtime())); /** * 调试使用情况 */ function debug_using() { echo 执行时间:.(array_sum(explode( , microtime()))-$GLOB转载 2008-08-01 11:06:00 · 754 阅读 · 0 评论 -
php+mysql无限级分类(非递归)
要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的本文还是通过数据库的设计,用一句sql语句实现数据库字段大概如下:-----------------------------------------------------------------------------------id 编号fid转载 2008-08-01 11:04:00 · 804 阅读 · 0 评论 -
PHP session 错误与解决
错误:Warning: Cannot send session cookie - headers already sen……或错误:Cannot add header information - headers already sent……有两种解决方案1、自己的服务器,打开php.ini,设置 output_buffering = on2、他人的服务器,没有权限设置php.ini(暂时租不起),转载 2008-04-23 08:30:00 · 667 阅读 · 0 评论 -
php 大文件上传问题
php上传文件涉及到的参数: 几个参数调整: 0:文件上传时存放文件的临时目录。必须是 PHP 进程所有者用户可写的目录。如果未指定则 PHP 使用系统默认值 php.ini文件中upload_tmp_dir用来说明PHP上传的文件放置的临时目录。 要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限 1:max_execution_time 变量max_execution_time设置转载 2008-05-21 14:52:00 · 6399 阅读 · 0 评论 -
php 大文件上传问题
php上传文件涉及到的参数: 几个参数调整: 0:文件上传时存放文件的临时目录。必须是 PHP 进程所有者用户可写的目录。如果未指定则 PHP 使用系统默认值 php.ini文件中upload_tmp_dir用来说明PHP上传的文件放置的临时目录。 要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限 1:max_execution_time 变量max_execution_time设置转载 2008-05-21 14:52:00 · 979 阅读 · 0 评论 -
php连接sql server查询text字段丢失数据解决方法
在php.ini里面查找 ;Valid range 0 - 2147483647. Default = 4096. ; mssql.textlimit = 4096 ; Valid range 0 - 2147483647. Default = 4096.原创 2009-02-24 16:51:00 · 1200 阅读 · 0 评论 -
中英文字符串翻转函数
//页面编码设为utf8 header(Content-type: text/html; charset=utf-8);$luokuan = "ABCDEFG-测试的啊-!!!一二三四五。。"; $n = mb_strlen("$luokuan","UTF-8"); //echo $n; $newluokuan = ""; for ($i=$n;$i>=0原创 2008-11-05 09:56:00 · 784 阅读 · 0 评论 -
apache 防盗链
参考:http://ipaddr.bokee.com/1063998.html http://zhidao.baidu.com/question/4970111.html防盗链原理: http标准协议中有专门的字段记录referer 一来可以追溯上一个入站地址是什么 二来对于资源文件,可以跟踪到包含显示他的网页地址是什么。 因此所有防盗链方法都是基于这个Referer字段主要转载 2008-10-17 13:38:00 · 888 阅读 · 0 评论 -
php破解防盗链图片
$url=$_GET[url];$ext=pathinfo($url,PATHINFO_EXTENSION);if($ext!=jpg && $ext!=gif){ // 只支持jpg和gif readfile(http://www.mayday.net.cn/cert/logo.gif); exit;}$file=转载 2008-10-17 11:31:00 · 1812 阅读 · 0 评论 -
php 断点续传下载
/** * 作者 于恩水 * 支持断点续传下载 * 实例代码: * $down = new SD_DownLoad(); * $down->Down(E:/iso/MS.Office2003SP1.CHS.iso); **/class SD_DownLoad { /** * 下载的开始点 *原创 2008-09-23 14:24:00 · 1344 阅读 · 0 评论