本文目录一览:
使用php如何获取微信文章?
可以尝试使用DOM操作库simple-html-dom.php,快速获取HTML结构的内容:
?php
require dirname(__FILE__).'/simple_html_dom.php';
$html = file_get_html('');
$articles = array();
foreach($html-find('article.newsentry') as $article) {
$item['time'] = trim($article-find('time', 0)-plaintext);
$item['title'] = trim($article-find('h2.newstitle', 0)-plaintext);
$item['content'] = trim($article-find('div.newscontent', 0)-plaintext);
$articles[] = $item;
}
print_r($articles);
可以把抓取到的内容写入置于内存上的SQLite(/run/shm/php/crawler.db3),避免频繁的磁盘IO.
PHP如何获得微信公众平台关注用户的基本信息
1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
详情请参考微信开发文档
网页链接
php微信开发获取用户信息
步骤一:
获取用户信息需要”通过微信认证“ 请确认你是否有相应权限
步骤二:
获取用户基本信息,必须提供ACCESS_TOKEN和openid 两个参数;id=mp1421140839
//正常情况下,微信会返回下述JSON数据包给公众号:
{
"subscribe": 1,
"openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
"nickname": "Band",
"sex": 1,
"language": "zh_CN",
"city": "广州",
"province": "广东",
"country": "中国",
"headimgurl": "
eMsv84eavHiaiceqxibJxCfHe/0",
"subscribe_time": 1382694957,
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
"remark": "",
"groupid": 0,
"tagid_list":[128,2]
}
步骤三:
获取access_token 前需要配置IP白名单和相应设置让其有正确的访问权限
获取access_token 需要三个参数
以下是成功案例:
;id=mp1421140183
php手机端怎么获取微信openid
//***方法一
获取code
这里是你的公众号的APPIDredirect_uri=;response_type=codescope=snsapi_userinfostate=123#wechat_redirect
用户点击确认登录,自动跳转下面地址得到code
这个是你自己的跳转地址
;state=123
后面的这个 ?code=……123 是微信自动跳转添加的,不是你自己加的
下面是PHP语言,写在getcode这个页面里
$code = $_GET['code'];//获取code
$weixin = file_get_contents("这里是你的APPIDsecret=这里是你的SECRETcode=".$code."grant_type=authorization_code");//通过code换取网页授权access_token
$jsondecode = json_decode($weixin); //对JSON格式的字符串进行编码
$array = get_object_vars($jsondecode);//转换成数组
$openid = $array['openid'];//输出openid
//***方法二
$appid = "公众号在微信的appid";
$secret = "公众号在微信的app secret";
$code = $_GET["code"];
$get_token_url = ''.$appid.'secret='.$secret.'code='.$code.'grant_type=authorization_code';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_token_url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
$json_obj = json_decode($res,true);
//根据openid和access_token查询用户信息
$access_token = $json_obj['access_token'];
$openid = $json_obj['openid'];
$get_user_info_url = ''.$access_token.'openid='.$openid.'lang=zh_CN';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_user_info_url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
//解析json
$user_obj = json_decode($res,true);
$_SESSION['user'] = $user_obj;
print_r($user_obj);
如何用 php 抓取微信文章正文
在刚入手PHP的时候,经理让我自己做一个文章的管理系统为了方便管理微信端发的消息。除了简单的添加分类、管理分类、添加文章、管理文章,还有一个功能就是要从微信文章网址中拿到网址上的标题、作者以及发表时间。
一、 页面使用ajax
把微信页面的地址放在文章链接里,点击获取,调用ajax。不说了,直接上代码td文章链接:/td
tdinput type="text" id="url" name="url" size="50" input type="button" value="获取" onclick="javascript:return getMsg()"//td
复制代码
function getMsg(){
var title=document.getElementById("title");var url=document.getElementById("url").value;var typeId;
var writer=document.getElementById("writer");var addtime=document.getElementById("addtime");//alert(url);die;
$.ajax({
url: '/addarticle/getmsg',
type: 'POST',
dataType:'text',
data: 'url='+url,
success: function(data)
{
var str=data;
var arr=new Array();//0是标题;1是时间;2是作者var result=str.split("");
for(var i=0;iresult.length;i++){
arr.push(result[i]);
}
title.value=arr[0];
addtime.value=arr[1];
writer.value=arr[2];
//alert(arr[0]);
},
error: function()
{
alert('请求错误');
}
});
}
复制代码
二、在php页面利用file_get_content函数获取页面全部信息该函数是将页面中的所有内容写在字符串中,想要拿到指定的内容,就用到了正则匹配。正则表达式的相关知识就不说了,直接说今天的内容。将结果放在同一个变量中,用特殊符号隔开,以便在视图页面进行分割并写入文本框内。
复制代码
public function actionGetmsg(){
$result=array();
$url=$_POST["url"];
$wx_content=file_get_contents($url);//利用函数获得网址的内容$title_html="/.*?title(.*?)\/title.*?/";//正则匹配文章的标题preg_match($title_html, $wx_content, $matchs);echo $matchs[1]."";
//echo 'pre';var_dump($matchs);echo '/pre';//正则匹配文章的添加时间
$creattime_html="/.*?em id=\"post-date\" class=\"rich_media_meta rich_media_meta_text\"(.*?)\/em.*?/";preg_match($creattime_html, $wx_content, $matchs);// echo 'pre';var_dump($matchs);echo '/pre';echo $matchs[1]."";
//正则匹配文章的作者
$wxh_html="/.*?a class=\"rich_media_meta rich_media_meta_link rich_media_meta_nickname\" href=\"##\" id=\"post-user\"(.*?)\/a.*?/";preg_match($wxh_html, $wx_content, $matchs);// echo 'pre';var_dump($matchs);echo '/pre';echo $matchs[1]."";
}
复制代码
三、同时大家可以看到图片上时间那一栏,可以自己添加这里使用的是一个小控件,也就是一个js,WdatePicker.js。
首先在页面的头部引入js控件,在文本框中写下以下代码,点击文本框就可以看到日历形式的出现,选择你需要的日期。
tdinput type="text" name="newsTime" id="addtime" onclick="WdatePicker({dateFmt:'yyyy:MM:dd HH:mm:ss'})" placeholder="请输入文章发布时间" / /td
具体的WdatePicker.js可以在网上找一个。