封装一个php发QQ微博的类。

2010-7-19 寒川 网页编程

QQ微博API至今未发布,昨几天在给EMLOG写QQ微博插件插件的时候搞定QQ微博,今天封装一个php发QQ微博的类,相当于一个简单的QQ微博API功能。大致原理简单的说来就是用CURL库模拟登陆发表微博。废话不多说,直接上菜: 

<?php
/*
用法:
$qq = new qq();
$qq->publish('xieyanwei','password','Hi, I\'m a PHPer.');
*/
class qq
{
  function publish($username, $password, $content='')
  {
    $qq = trim($username);
    $pwd = $this->md5_3(trim($password));
    $cookie_jar = $this->login($qq, $pwd);
    $url = 'http://t.qq.com/publish.php' ;
    $fields = array(
      'content'=>urlencode($content),
      'pic'=>urlencode(''),
    'countType'=>urlencode(''),
    'viewModel'=>urlencode('1')
    );
    $fields_string = '';
    foreach($fields as $key=>$value)
    {
      $fields_string .= $key.'='.$value.'&amp;' ;
     }
    rtrim($fields_string ,'&amp;') ;
    $fields_string = substr($fields_string, 0,-5);
    $referURL = 'http://t.qq.com/'.$qq;
    $curl = curl_init($url) ;
    curl_setopt($curl, CURLOPT_POST,count($fields)) ;
    curl_setopt($curl, CURLOPT_POSTFIELDS,$fields_string) ;
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_jar);
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);
    curl_setopt($curl, CURLOPT_REFERER, $referURL);
    curl_exec($curl) ;
    curl_close($curl) ;
    unlink($cookie_jar);
  }

private  function login($username, $password)
  {
    $qq = trim($username);
    $pwd = trim($password);
    $verifyURL = 'http://ptlogin2.qq.com/check?uin=@'.$qq.'&appid=46000101';
    $loginURL = 'http://ptlogin2.qq.com/login?';
    $curl = curl_init($verifyURL);
    $cookie_jar = tempnam('.', 'cookie');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);
    $verifyCode = curl_exec($curl);
    curl_close($curl);
    $verifyCode = strtoupper(substr($verifyCode, 18, 4));
    $loginURL .= 'u=@'.$qq.'&p='.md5($pwd.$verifyCode).'&verifycode='.$verifyCode.'&aid=46000101&u1=http%3A%2F%2Ft.qq.com&h=1&from_ui=1&fp=loginerroralert';
    $curl = curl_init($loginURL);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_jar);
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar);
    curl_exec($curl);
    curl_close($curl);
    return $cookie_jar;
  }

private  function md5_3($str)
  {
    return strtoupper(md5(md5(md5($str,true),true)));
  }
}
?>

标签: emlog QQ微博API QQ微博类

评论(6) 浏览(18619)

html 5学习-audio标签插入音乐

2010-6-22 寒川 网页编程

昨天学习了html 5中插入视频的audio标签,详见《html 5学习-video标签插入视频 》,今天翻开html 5手册,学习学习audio标签插入音乐。<audio>标签也是html 5新增的标签,用于定义声音,比如音乐或其他音频流。因此之前的html版本是没啥用处的。其基本用法:<audio src="music.wav">您的浏览器不支持 audio 标签,赶快升级吧。</audio>

 

属性 说明
autoplay true | false 如果是 true,则音频在就绪后马上播放。
controls true | false 如果是 true,则向用户显示控件,比如播放按钮。
end numeric value 定义播放器在音频流中的何处停止播放。默认地,声音会播放到结尾。
loopend numeric value 定义在音频流中循环播放停止的位置,默认是 end 属性的值。
loopstart numeric value 定义在音频流中循环播放的开始位置。默认是 start 属性的值。
playcount numeric value 定义音频片断播放多少次。默认是 1。
src url 所播放音频的 url。
start numeric value 定义播放器在音频流中开始播放的位置。默认地,声音在开头进行播放。

有朋友说希望能给出演示,这要咋演示呢?下载个支持html 5的浏览器就可以测试了,据我所知,目前支持或部分支持html 5的浏览器主要有:Opera,Chrome ,IE9,Safari。

ps:IE9是不支持xp系统的哦。。。。


 

标签: html html 5 video标签 audio标签 网络编程

评论(1) 浏览(13950)

html 5学习-video标签插入视频

2010-6-21 寒川 网页编程

html 5似乎很热,和现在成都的天气一样,热得快受不了了。或许html 5全面到来还需要相当长一段时间,不过主流浏览器厂商都纷纷支持html 5,IE9将全面支持html 5,好像靠IE9来推动html 5的话有点不靠谱。为了做个引领时尚的人,跟上web主流,还是尽快主动转投html 5门下吧。下面讲讲html 5的video标签插入视频。

<video> 标签是 HTML 5 的新标签,这意味着在不支持html 5的浏览器上是无法使用的,但是可以在开始标签和结束标签之间放置文本内容,这样老的浏览器就可以显示出不支持该标签的信息,如:
<video src="meinv.wmv">您的浏览器不支持 video 标签,赶快升级吧。</video>

video标签属性如下:
 

属性 说明
autoplay true | false 如果是 true,则视频在就绪后马上播放。
controls true | false 如果是 true,则向用户显示控件,比如播放按钮。
end numeric value 定义播放器在视频流中的何处停止播放。默认地,声音会播放到结尾。
height pixels 设置视频播放器的高度。
loopend numeric value 定义在视频流中循环播放停止的位置,默认是 end 属性的值。
loopstart numeric value 定义在视频流中循环播放的开始位置。默认是 start 属性的值
playcount numeric value 定义视频片段播放多少次。默认是 1。
poster url 在视频播放之前所显示的图片的 URL。
src url 要播放的视频的 URL。
start numeric value 定义播放器在音频流中开始播放的位置。默认地,声音在开头进行播放。
width pixels 设置视频播放器的宽度。


 

标签: html 5 video标签 视频

评论(7) 浏览(16053)

发布个EMlog安装插件的插件

2010-6-20 寒川 网页编程

众所周知,EMlog要安装插件,必须先下载插件,解压后上传至插件目录,有了本插件,可以在后台一键安装插件,免去下载解压上传的繁琐操作。ps:和plugins维护插件功能上有点重复,故,无在官方论坛发布的打算。截图如下:

点击查看原图

标签: emlog emlog插件

评论(6) 浏览(12511)

dedecms挂马清理记

2010-6-19 寒川 网页编程

一老同学的网站被挂马了,据说每次登录360都会提示挂马,本人已卸载了360,自然是不知不觉,好在ESET还算尽忠职守,默默地抵御了木马的下载,导致IE浏览器总是无法浏览。换个浏览器k-meleon,网站直接就被打开了,查看了一下源码,js挂马真不少。于是乎登陆ftp修改所有被挂马的模板文件。重新生成html静态页面。没隔几天,又说被挂马了……晕啊!于是乎再次重复上述步骤。难道密码太弱?换了密码,改了后台登陆地址,结果又过了几天,还是被成功挂马了……厉害啊!肯定哪儿存在漏洞。在查看数据库连接配置文件时终于发现了线索,居然在数据库连接配置文件中收集用户名及密码用fputs()函数模拟GET发送到另url中,并且url函数base64_encode()编码了,很迷惑人,细细想来,挂马之人还挺厉害的啊,看来php学的很精通了,这招都能想到,I 服了他。

标签: php 挂马 dedecms 模拟GET

评论(8) 浏览(11290)

php实现多关键词sql数据库查询

2010-6-10 寒川 网页编程

实现的方法实际上是来自至一个asp的关键词sql数据库查询,将其“翻译”成php,简单地实现多关键词sql数据库查询,废话不多讲,直接上菜:

<?php

$keywords="测试 关键词";//从表单获取的关键词。

$keyword =explode(' ',$keywords);//将关键词以空格分割到数组中。


$temp_sql='';
 for($i=0;$i<count($keyword);$i++)
 {
    if($i==count($keyword)-1)
      {
        $temp_sql=$temp_sql." content LIKE '%".$keyword[0]."%' and ";//根据sql语句后续需要填写“and”
      }
      else
      {
        $temp_sql.=$temp_sql." content LIKE '%".$keyword[0]."%' or ";
      }
 }
$sql="SELECT * FROM  table where ".$temp_sql." order by content";//组合查询语句
echo $sql;//输出SQL语句,用于调试、查询

?>

标签: php 多关键词 sql查询 关键词查询

评论(1) 浏览(10024)

php用fsockopen()函数实现模拟提交表单。

2010-6-9 寒川 网页编程

一直想解决EMlog飞信插件发表留言后漫长等待返回发送结果的困扰,今天用fsockopen()函数解决了这个问题。原理很简单,就是php模拟post表单,且去掉返回结果。这样速度就快多了。核心代码如下:

<?php


$msg='测试飞信用';
$host =$_SERVER['HTTP_HOST'];
$post=rawurlencode('msg').'='.rawurlencode($msg);
$len = strlen($post);

 $file ="/fetion/api.php";
$fp = @fsockopen( $host , 80, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno)\n";
}
else
{
$out = "POST $file HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n";
$out .= "Content-Length: $len\r\n";
$out .="\r\n";
$out .= $post."\r\n";
fwrite($fp, $out);
fclose($fp);
}

?>

标签: php api fetion api 飞信api php模拟post 表单

评论(7) 浏览(39417)

Powered by emlog 蜀ICP备12030225号

川公网安备 51042102000001号

sitemap