标签为 php
php curl常用的5个例子 (转)
php curl常用的5个例子(转) 转载请注明 作者:海底苍鹰 地址:http://blog.51yip.com/php/1039.html 我用php ,curl主要是抓取数据,当然我们可以用其他的方法来抓取,比如fsockopen,file_get_contents等。但是只能抓那些能直接访问的页面,如果要抓取有页面访问控制的页面,或者是登录以后的页面就比较困难了。 1,抓取无访问控制文件 查看复制打印? <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, “http://localhost/mytest/phpinfo.php”); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果把这行注释掉的话,就会直接输出 $result=curl_exec($ch); curl_close($ch); ?> 2,使用代理进行抓取 为什么要使用代理进行抓取呢?以google为例吧,如果去抓google的数据,短时间内抓的很频繁的话,你就抓取不到了。google对你的ip地址做限制这个时候,你可以换代理重新抓。 查看复制打印? <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, “http://blog.51yip.com”); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080); //url_setopt($ch, CURLOPT_PROXYUSERPWD, ’user:password’);如果要密码的话,加上这个 $result=curl_exec($ch); curl_close($ch); ?> 3,post数据后,抓取数据 单独说一下数据提交数据,因为用 curl的时候,很多时候会有数据交互的,所以比较重要的。 查看复制打印? <?php $ch = curl_init(); /*在这里需要注意的是,要提交的数据不能是二维数组或者更高 *例如array(‘name’=>serialize(array(‘tank’,’zhang’)),’sex’=>1,’birth’=>’20101010′) *例如array(‘name’=>array(‘tank’,’zhang’),’sex’=>1,’birth’=>’20101010′)这样会报错的*/ $data = array(‘name’ => ‘test’, ‘sex’=>1,‘birth’=>’20101010′); curl_setopt($ch, CURLOPT_URL, ‘http://localhost/mytest/curl/upload.php’); curl_setopt($ch, CURLOPT_POST, 1); [...]
9个很有发展潜力的PHP开源项目 (包括 iphone push 和 phpForAndroid) (转)
介绍9个很有发展潜力的PHP开源项目 原文: http://developer.51cto.com/art/201101/243552.htm 2011年01月20日02:00 it168网站原创 作者:jacky / 译 编辑:董建伟 评论:0条 本文Tag: PHP开源项目 开源项目 PHP 开源 【IT168 专稿】PHP的开源世界可谓相当精彩,其中大家也接触的不少著名的PHP开源项目,比如Drupal、Sugar CMS、Joomla等等,但在本文中,笔者将选取9个最新知名度不是太高,但可在某些方面很实用,目前还在发展阶段,很有潜力的PHP开源项目。相信各位读者看了之后会惊叹:原来PHP还能干这么多事情。 1、PHP FOR Android 现在,iphone和Android大行其道,拥有它们已经成为一种潮流。而Android的市场份额也变的越来越大。 而现在除了可以用JAVA来编写Android应用外,还多了一种选择,那就是可以使用PHP去编写相关的Android应用了,这都要归功于一个开源项目Php For Android(http://phpforandroid.net/)。它实际上是利用了另外一个开源项目Scripting Layer for Android(SL4A)( http://code.google.com/p/android-scripting/)提供的Android接口API去实现的,任何支持SL4A的脚本语言(比如Javascript,Ruby, Perl,PHP,和Python)都能够通过接口直接跟操作系统打交道,编写应用。 如果想了解这个项目,可以阅读如下的这篇文章《Build Your First PHP for Android Application》。 2、PL/PHP 某些数据库任务涉及很复杂的逻辑计算,而不是简单使用几句SQL语句就可以解决问题。为了降低其复杂性,许多数据库的解决方案中提供了存储过程,它在一个子程序中封装了要完成任务的逻辑,这些子任何的功能其实就象PHP中的函数一样。 存储过程可以用相应的SQL去编写的,如微软的存储过程使用T-SQL,Oracle则采用PL-SQL。比如PostgreSQL数据库能执行由C,C++,Java,Ruby,Perl,Python编写的存储过程,而有了PL/php 开源项目(https://public.commandprompt.com/projects/plphp/wiki),现在你可以使用PHP去编写存储过程了。 当安装了PL/PHP项目后,你就可以在PostgreSQL下执行使用PHP编写的存储过程了,可以使用你熟悉的PHP语法,十分简单。 3、PHP-QT PHP-QT项目(http://developer.berlios.de/projects/php-qt/)允许你使用PHP语言去编写实现QT的功能,也就是说,可以使用PHP-QT去编写一些功能强大的桌面应用。所谓QT是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。 但有点遗憾的是,这几年这个项目的发展有点迟缓了,如果确实有兴趣的话,建议也去研究下PHP-GTK这个项目(http://gtk.php.net/) 4、Phuby 最近,Ruby核心团队成员Aaron Patterson完成了phuby,它可以在Rails应用下运行php应用程序。项目的地址在https://github.com/tenderlove/phuby,尽管项目主持人Aaron发布了几个视频去证明phuby能让php在Rails下运行,但实际上在Rails社区中,估计phuby也只是一个实验品而已。 5、另外一个phuby Sean Huber也发布了另外一个同名的项目,居然也叫phuby,但这个跟上面介绍那个是完全没任何关系的。项目地址在https://github.com/huberry/phuby。这个项目为php增加了几个有趣的功能,而只需要在php中设置include_path指向phuby的库位置就可以了。虽然该项目还是处在比较初级的阶段,但其实它已经是综合了php和ruby的一些特点了。 6、Objective-PHP and Moka Objective-PHP [...]
50 个非常有用的PHP工具(转)
(版权属于原作者: http://www.javaeye.com/news/5208-50-very-useful-php-tools-editing-in) PHP是使用最为广泛的开源服务器端脚本语言之一,当然PHP并不是速度最快的,但它却是最常用的脚本语言。这里有50个有益的PHP工具,可以大大提高你的编程工作: 调试工具 Webgrind Xdebug Gubed PHP Debugger DBG PHP_Debug PHP_Dyn MacGDBp 测试和优化工具 PHPUnit SimpleTest Selenium PHP_CodeSniffer dBug PHP Profile Class 文档工具 phpDocumentor PHP DOX 安全工具 Securimage :验证码工具。 Scavenger PHP-IDS Pixy :代码检查工具。 图形处理 PHP/SWF Charts pChart – a chart-drawing PHP library WideImage MagickWand For PHP 代码优化 PHP_Beautifier PHPCodeBeautifier GeSHi – Generic Syntax Highlighter 版本控制系统 [...]
php版push服务器的流程(测试成功)
发布人 wangchao in iphone Mac 手机应用开发, 手机 分类 2010年12月30日
参考文档: http://www.cocoachina.com/bbs/read.php?tid-30410.html http://iphone.ipsw.info/2010/04/apple-push-notification-adhoc.html 初学iPhone开发,经过反复多次验证,结合下面2个教程: http://ameyashetti.wordpress.com/2009/07/31/apple-push-notification-service-tutorial/ http://www.macoscoders.com/2009/05/17/iphone-apple-push-notification-service-apns/ 得出从零开始的php版push服务器搭建流程: ============================================================== 0.在Mac OS X机器上安装好XCode, 连接一台正常的iPhone, 保持平和的心态 APP 开发基础设置 1.在iPhone Provisioning Portal中建立好APP ID和Device. 2.在Keychain Access.app中生成证书请求CertificateSigningRequest.certSigningRequest(菜单 > Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority…). 3.在iPhone Provisioning Portal > Certificates中请求一个证书(点击Request Certificate,上传CertificateSigningRequest.certSigningRequest). 4.请求完成后,将证书文件(developer_identity.cer)下载,双击导入到Key Chain中. 5.在iPhone Provisioning Portal > Provisioning 中,新建一个Profile, 选择指定的APP ID和 Devices后生成. 6.将刚刚生成的Profile下载为*_profile.mobileprovision, 双击该文件, 将profile加载到iPhone中. [...]
用 javascript 脚本 防止搜索引擎抓取页面上的敏感信息 (jquery)
发布人 wangchao in javascript, jQuery, php 分类 2009年06月14日
为了防止在搜索引擎搜索到不想公开的信息如:邮箱,电话,但是又想在相应的页面显示,除了设置爬虫屏蔽整个页面,还有一个比较通用的方法利用js重写内容 test.php 代码如下: <p class=”hex”><?=bin2hex(“+86(10) 85911014-13″)?></p> <p class=”hex”><?=bin2hex(“wangchao123.com@gmail.com)?></p> <p class=”hex”><?=bin2hex(“会员姓名”)?></p> ps: 为所有需要替换的标签绑定 hex 样式以便jQuery选择器选择 (bin2hex 将字符串专函为 ASCII码) jQuery 代码部分: <script language=”javascript”> //加载完成后替换所有 hex 的地方 $(function (){ $(“.hex”).each(function(){ var oldtext = $(this).text(); $(this).text(hex2bin(oldtext)); }) }) //ascii 码,字符串互转的方法 function hex2bin(hex){ var result = “”; if(hex && hex.length && hex.length % 2 == 0){ for(var i [...]
cvs update 提示信息含义
“cvs update” 后在信息框里会列出你的操作,你的文件update的情况,这里是CVS使用的所有其它单字符信息性消息的列表: U [path] 在本地机更新get到了服务器上最新的或者最新版本的文件。 P [path] 像“U”一样,只是在update时你的网络带宽少的情况下CVS服务器所出现的提示。 M [path] 这意味着您已经修改过该文件了;而且,有可能资源库中新的更改已成功地合并到该文件。 C [path] 错误警报,”C” 字符表明该文件存在冲突,需要在使用 “commit” 提交前解决这冲突。 A [path] 该文件是计划要添加的,即添加了但尚未提交,这时你还使用update命令,CVS就会有这个提示,当你 “commit” 时,它被正式添加到服务器库中,问题解决。 R [path] 象 “A” 一样,”R” 让您知道该文件计划要删除的,即删除了但尚未提交,这时你还使用update命令, CVS就会有这个提示,当你 ” commit” 后,该文件就会从服务器库中删除,问题解决。
is_null(), empty(), unset() 区别和用法 PHP
is_null 在下列情况下一个变量被认为是 NULL: 被赋值为 NULL。 尚未被赋值。 被 unset(). NULL 类型只有一个值,就是大小写敏感的关键字 NULL empty() “”、0、”0″、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 是非空或非零的值,则 empty() 返回 FALSE psL由于这是一个语言结构而非函数,因此它无法被变量函数调用。 empty()常用来检测 request 过来的值是否为空值(即是否传递过来) unset() 不是一个真正的函数:它现在是一个语句 1. 如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。 <?php function destroy_foo() { global $foo; unset($foo); } $foo = ’bar’; destroy_foo(); echo $foo; ?> 结果: bar 2.如果在函数中 unset() 一个静态变量,则 unset() 将销毁此变量及其所有的引用。 <?php function foo() { static $a; $a++; [...]


TOP