技术开发

谷歌chrome扩展插件开发入门教程(1):做第一个chrome插件

回到之前的问题,谷歌chrome扩展插件开发其实不是特别的难吧,个人感觉是这样的。做下个人的谷歌chrome扩展插件开发入门教程(1),做第一个chrome插件,从最简单的坐起。

新建一个文件夹:英文哦。

譬如我的:yifen

1、新建文件:manifest.json


{
	"name" : "一分钟搞笑网",
	"version" : "1.0",
	"description" : "轻松查看一分钟搞笑网的经典笑话,非常不错哦,http://www.yifen5.com",
	"manifest_version": 2,  /*这样必须要有的。
	"browser_action" : {   /*浏览器动作*/
		"default_title": "提示标题哦,方便放上去的提示。",
		"default_icon" : "myright16.png",
		"default_popup" : "popup.html"
	}
}
这是简单的json格式。

» 阅读全文

关键词: chrome扩展开发 , chrome插件

phpcms v9 最新模板标签使用技巧和模板标签常用方法集锦

1.截取调用标题长度

{str_cut($r[title],36,'')}

2.格式化时间

调用格式化时间 2011-05-06 11:22:33

{date('Y-m-d H:i:s',$r[inputtime])}

3.多栏目调用&多推荐位调用

调用需求:文章范围为59 60 61三个栏目,并且推送到了27 和28两个推荐位;
从第三条开始,连续调用7篇文章。

{pc:get sql="SELECT * FROM v9_news WHERE id IN (SELECT id FROM v9_position_data WHERE posid in(27,28) and catid in(59,60,61)) order by listorder DESC" cache="3600" start="3" num="7" return="data" }
{loop $data $n $r}
<li>·<a target="_blank" href='{$r[url]}' title="{$r[title]}" style="color:Black;">{str_cut($r[title],22,'')}</a></li>
{/loop}
{/pc}

» 阅读全文

关键词: 模板标签 , phpcms v9

PHP转换数组中编码的方法

我们经常遇到讲php数组中的数组转换编码的问题。用构建数组原型的序列化方法,借助var_export函数,最终函数如下:

function array_iconv($in_charset,$out_charset,$arr){
 return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));

 }

原理很简单 var_export设置第二个参数为true,返回数组原型字符串,将字符串转换为utf-8编码,之后再用eval来执行返回(类似匿名函数?),至此完美解决问题。


关键词: 数组转换编码 , php数组

中国天气网天气API参数详细解释说明

经常大家要使用到天气的API,但是,中国天气网天气api返回的JSON参数太多,那么给出中国天气网天气API参数详细解释说明,可以供给参考。。。。

» 阅读全文

关键词: 天气api

微信公众平台消息接口开发学习教程之微信开发接口封装类

这篇日志被加密了,请输入密码后查看。

PHP中使用CURL方法的超详细教程curl_setopt()函数的参数

PHP CURL curl_setopt 参数

bool curl_setopt (int ch, string option, mixed value)
curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。


下列选项的值将被作为长整形使用(在option参数中指定):   
?    CURLOPT_INFILESIZE : 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。
?    CURLOPT_VERBOSE : 如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。
?    CURLOPT_HEADER : 如果你想把一个头包含在输出中,设置这个选项为一个非零值。
?    CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条,设置这个选项为一个非零值。注意:PHP自动设置这个选项为非零值,你应该仅仅为了调试的目的来改变这个选项。
?    CURLOPT_NOBODY : 如果你不想在输出中包含body部分,设置这个选项为一个非零值。
?    CURLOPT_FAILONERROR : 如果你想让PHP在发生错误(HTTP代码返回大于等于300)时,不显示,设置这个选项为一人非零值。默认行为是返回一个正常页,忽略代码。
?    CURLOPT_UPLOAD: 如果你想让PHP为上传做准备,设置这个选项为一个非零值。
?    CURLOPT_POST : 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。
?    CURLOPT_FTPLISTONLY : 设置这个选项为非零值,PHP将列出FTP的目录名列表。
?    CURLOPT_FTPAPPEND : 设置这个选项为一个非零值,PHP将应用远程文件代替覆盖它。
?    CURLOPT_NETRC : 设置这个选项为一个非零值,PHP将在你的 ~./netrc 文件中查找你要建立连接的远程站点的用户名及密码。
?    CURLOPT_FOLLOWLOCATION : 设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。
?    CURLOPT_PUT : 设置这个选项为一个非零值去用HTTP上传一个文件。要上传这个文件必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项.
?    CURLOPT_MUTE : 设置这个选项为一个非零值,PHP对于CURL函数将完全沉默。
?    CURLOPT_TIMEOUT : 设置一个长整形数,作为最大延续多少秒。
?    CURLOPT_LOW_SPEED_LIMIT: 设置一个长整形数,控制传送多少字节。
?    CURLOPT_LOW_SPEED_TIME : 设置一个长整形数,控制多少秒传送CURLOPT_LOW_SPEED_LIMIT规定的字节数。

» 阅读全文

关键词: curl方法

PHP函数:CURL抓取网站内容的,支持301 302跳转

我们在抓取网站内容的时候,经常遇到稀奇古怪的防盗链,比如上次碰到一个站的图片地址是假的,访问后要301跳转一次才到真正的图片路径,这个真实的路径又做了防盗措施,判断referer是不是上个假的图片地址。用curl试了几次,终于整出一个函数,效果不错。

$curl_loops = 0;//避免死了循环必备
$curl_max_loops = 3;
 
function curl_get_file_contents($url, $referer='') {
global $curl_loops, $curl_max_loops;
$useragent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
if ($curl_loops++ >= $curl_max_loops) {
  $curl_loops = 0;
  return false;
} 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);?curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $referer);
$data = curl_exec($ch);
$ret = $data;
list($header, $data) = explode("\r\n\r\n", $data, 2);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$last_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
if ($http_code == 301 || $http_code == 302) {
  $matches = array();
  preg_match('/Location:(.*?)\n/', $header, $matches);
  $url = @parse_url(trim(array_pop($matches)));
  if (!$url) {
  ?$curl_loops = 0;
  ?return $data;
  } 
  $new_url = $url['scheme'] . '://' . $url['host'] . $url['path']
   . (isset($url['query']) ? '?' . $url['query'] : '');
  $new_url = stripslashes($new_url);
  return curl_get_file_contents($new_url, $last_url);
} else {
  $curl_loops = 0;
  list($header, $data) = explode("\r\n\r\n", $ret, 2);
  return $data;
} 
}

关键词: curl抓取内容

php使用curl存取cookie进行登录抓取数据示例

curl真的太强大了,不是一般的强大的,curl可以抓取数据,也可以登录,然后获取数据,很多人不是很懂,其实慢比较简单的。其实,只要,只看手册就可以很容易把握。下面给个例子,看完后就全都明了了:

<?php
$cookie_jar_index = 'cookie.txt';
 
$url = "http://www.71j.cn/perl/login.pl";
$params = "username=dudu&password=****";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar_index);
//curl_setopt($ch, CURLOPT_COOKIE, "fruit=apple; colour=red");
//上面代码是直接传递cookie信息,而非文件
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 
//curl_setopt($ch, CURLOPT_NOBODY, 1);//这个不能打开,否则无法生成cookie文件
ob_start();
curl_exec($ch);
curl_close($ch);
ob_clean();
 
$url = "http://www.71j.cn/perl/myfavorites.pl";
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url);
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar_index);
ob_start();
curl_exec($ch2);
curl_close($ch2);
$rs = ob_get_contents(); //$rs就是返回的内容
ob_clean();
 
print_r($rs);
 
?>

关键词: curl存取co