分类 PHP 下的文章 - Yloadtech
首页
视频
音乐
直播
壁纸
友情链接
统计
反馈
更多
关于
搜 索
1
【教程】Typecho Joe主题开启并修复壁纸相册不显示问题
187 阅读
2
如何利用PHP开发一个简单的在线视频播放器
171 阅读
3
解决 win11 连接共享打印机,报错 0x00000709 问题
165 阅读
4
php实现基本的日历显示与实时查询功能
152 阅读
5
NTP反射放大攻击!
148 阅读
PHP
Java
IT
网络大神
社会一角
登录
/
注册
搜 索
标签搜索
半篇 关注
Yloadtech
累计撰写
34
篇文章
累计收到
6
条评论
首页
栏目
PHP
Java
IT
网络大神
社会一角
页面
视频
音乐
直播
壁纸
友情链接
统计
反馈
关于
用户登录
登录
注册
找到
10
篇与
PHP
相关的结果
2024-12-27
7-zip解压:cannot create symbolic link :客户端没有所需的特权。
Window下7z解压:cannot create symbolic link :客户端没有所需的特权。问题描述如下:在浏览器中下载zip文件,用7.zip进行解压出现如标题问题。现象分析:download直接下载到c盘中,由于所在文件夹有权限限制。无法进行正常解压。解决方法:7.zip解压时使用管理员权限进行解压,解压时使用管理员权限。使用管理员身份进行解压即可。
2024年12月27日
127 阅读
0 评论
0 点赞
2024-07-15
php网站做分享到朋友圈,PHP实现微信分享朋友圈
1、先加载微信自带的接口代码<?php class JSSDK { private $appId; private $appSecret; public function __construct($appId, $appSecret) { $this->appId = $appId; $this->appSecret = $appSecret; } public function getSignPackage() { $jsapiTicket = $this->getJsApiTicket(); // 注意 URL 一定要动态获取,不能 hardcode. $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $timestamp = time(); $nonceStr = $this->createNonceStr(); // 这里参数的顺序要按照 key 值 ASCII 码升序排序 $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; $signature = sha1($string); $signPackage = array( "appId" => $this->appId, "nonceStr" => $nonceStr, "timestamp" => $timestamp, "url" => $url, "signature" => $signature, "rawString" => $string ); return $signPackage; } private function createNonceStr($length = 16) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str = ""; for ($i = 0; $i < $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str; } private function getJsApiTicket() { // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例 $data = json_decode($this->get_php_file("jsapi_ticket.php")); if ($data->expire_time < time()) { $accessToken = $this->getAccessToken(); // 如果是企业号用以下 URL 获取 ticket // $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken"; $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken"; $res = json_decode($this->httpGet($url)); $ticket = $res->ticket; if ($ticket) { $data->expire_time = time() + 7000; $data->jsapi_ticket = $ticket; $this->set_php_file("jsapi_ticket.php", json_encode($data)); } } else { $ticket = $data->jsapi_ticket; } return $ticket; } private function getAccessToken() { // access_token 应该全局存储与更新,以下代码以写入到文件中做示例 $data = json_decode($this->get_php_file("access_token.php")); if ($data->expire_time < time()) { // 如果是企业号用以下URL获取access_token // $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret"; $res = json_decode($this->httpGet($url)); $access_token = $res->access_token; if ($access_token) { $data->expire_time = time() + 7000; $data->access_token = $access_token; $this->set_php_file("access_token.php", json_encode($data)); } } else { $access_token = $data->access_token; } return $access_token; } private function httpGet($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); // 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。 // 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } private function get_php_file($filename) { return trim(substr(file_get_contents($filename), 15)); } private function set_php_file($filename, $content) { $fp = fopen($filename, "w"); fwrite($fp, "<?php exit();?>" . $content); fclose($fp); } }2、修改自己的配制信息用微信浏览器打开就可以了<?php require_once "jssdk.php"; $appid = 'wx110'; $APPSECRET = '110'; $jssdk = new JSSDK($appid, $APPSECRET); $signPackage = $jssdk->GetSignPackage(); ?> js微信自定义分享标题、链接和图标 /* * 注意: * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。 * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html * * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈: * 邮箱地址:weixin-open@qq.com * 邮件主题:【微信JS-SDK反馈】具体问题 * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。 */ wx.config({ debug: false, appId: '<?php echo $appid; ?>', timestamp: <?php echo $signPackage["timestamp"]; ?>, nonceStr: '<?php echo $signPackage["nonceStr"]; ?>', signature: '<?php echo $signPackage["signature"]; ?>', jsApiList: [ 'onMenuShareTimeline' ] }); wx.ready(function() { wx.onMenuShareTimeline({ title: '二当家的', // 分享标题 link: 'http://www.erdangjiade.com/', // 分享链接 imgUrl: '', // 分享图标 success: function() { // 用户确认分享后执行的回调函数 }, cancel: function() { // 用户取消分享后执行的回调函数 } }); });
2024年07月15日
21 阅读
0 评论
0 点赞
2024-07-15
php如何实现微信分享功能
要实现微信分享功能,可以使用微信官方提供的JSSDK。首先在微信公众平台创建网站应用,获取AppID和AppSecret,然后通过调用接口获取access_token,再通过access_token获取jsapi_ticket,最后使用jsapi_ticket、nonceStr(随机字符串)和timestamp(时间戳)生成签名,将签名传递给前端,前端调用微信JSSDK的wx.config进行配置,最后调用wx.ready()方法实现分享功能。要实现微信分享功能,你需要遵循以下步骤:1、注册微信公众平台账号并创建公众号。2、配置公众号的JS接口安全域名。3、获取微信公众号的AppID和AppSecret。4、使用微信JSSDK实现分享功能。详细步骤如下:第一步:注册微信公众平台账号并创建公众号访问微信公众平台官网(https://mp.weixin.qq.com/),注册一个公众号账号,并按照提示完成公众号的创建。第二步:配置公众号的JS接口安全域名登录微信公众平台,进入“开发”>“基本配置”,填写你的网站域名,确保域名已经备案。第三步:获取微信公众号的AppID和AppSecret在微信公众平台的“开发”>“基本配置”页面,你可以找到你的AppID和AppSecret,请妥善保管这两个密钥,不要泄露给他人。第四步:使用微信JSSDK实现分享功能在你的PHP项目中,引入微信JSSDK文件:<script src="https://res.wx.qq.com/open/js/jweixin1.6.0.js"></script>调用微信JSSDK的wx.config()方法配置分享参数:wx.config({ debug: false, // 开启调试模式 appId: 'your_app_id', // 必填,公众号的唯一标识 timestamp: 'your_timestamp', // 必填,生成签名的时间戳 nonceStr: 'your_nonceStr', // 必填,生成签名的随机串 signature: 'your_signature', // 必填,签名 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 必填,需要使用的JS接口列表 });接下来,调用wx.ready()方法,当配置完成后执行分享功能:wx.ready(function () { // 分享到朋友圈 wx.onMenuShareTimeline({ title: '分享标题', // 分享标题 link: '分享链接', // 分享链接 imgUrl: '分享图片链接', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 alert('分享成功'); }, cancel: function () { // 用户取消分享后执行的回调函数 alert('取消分享'); } }); // 分享给朋友 wx.onMenuShareAppMessage({ title: '分享标题', // 分享标题 desc: '分享描述', // 分享描述 link: '分享链接', // 分享链接 imgUrl: '分享图片链接', // 分享图标 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户确认分享后执行的回调函数 alert('分享成功'); }, cancel: function () { // 用户取消分享后执行的回调函数 alert('取消分享'); } }); });全代码如下:<?php // 声明页面header header("Content-type:charset=utf-8"); // 声明APPID、APPSECRET $appid = "填写你的APPID"; $appsecret = "填写你的APPSECRET"; // 获取access_token和jsapi_ticket function getToken(){ $file = file_get_contents("access_token.json",true);//读取access_token.json里面的数据 $result = json_decode($file,true); //判断access_token是否在有效期内,如果在有效期则获取缓存的access_token //如果过期了则请求接口生成新的access_token并且缓存access_token.json if (time() > $result['expires']){ $data = array(); $data['access_token'] = getNewToken(); $data['expires'] = time()+7000; $jsonStr = json_encode($data); $fp = fopen("access_token.json", "w"); fwrite($fp, $jsonStr); fclose($fp); return $data['access_token']; }else{ return $result['access_token']; } } //获取新的access_token function getNewToken($appid,$appsecret){ global $appid; global $appsecret; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret.""; $access_token_Arr = file_get_contents($url); $token_jsonarr = json_decode($access_token_Arr, true); return $token_jsonarr["access_token"]; } $access_token = getToken(); //缓存jsapi_ticket function getTicket(){ $file = file_get_contents("jsapi_ticket.json",true);//读取jsapi_ticket.json里面的数据 $result = json_decode($file,true); //判断jsapi_ticket是否在有效期内,如果在有效期则获取缓存的jsapi_ticket //如果过期了则请求接口生成新的jsapi_ticket并且缓存jsapi_ticket.json if (time() > $result['expires']){ $data = array(); $data['jsapi_ticket'] = getNewTicket(); $data['expires'] = time()+7000; $jsonStr = json_encode($data); $fp = fopen("jsapi_ticket.json", "w"); fwrite($fp, $jsonStr); fclose($fp); return $data['jsapi_ticket']; }else{ return $result['jsapi_ticket']; } } //获取新的access_token function getNewTicket($appid,$appsecret){ global $appid; global $appsecret; $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=".getToken().""; $jsapi_ticket_Arr = file_get_contents($url); $ticket_jsonarr = json_decode($jsapi_ticket_Arr, true); return $ticket_jsonarr["ticket"]; } $jsapiTicket = getTicket(); // 动态获取URL $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; // 生成时间戳 $timestamp = time(); // 生成nonceStr $createNonceStr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; str_shuffle($createNonceStr); $nonceStr = substr(str_shuffle($createNonceStr),0,16); // 按照 key 值 ASCII 码升序排序 $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; // 按顺序排列按sha1加密生成字符串 $signature = sha1($string); ?> <!DOCTYPE html> <html lang="zh_cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0"> <title>要分享的index模板页面</title> </head> <body> <h3>已获得updateAppMessageShareData</h3> <h3>已获得updateTimelineShareData</h3> <h3>这两个API权限</h3> <h3>请点击右上角[···]体验</h3> </body> </html> <!-- 引入微信分享js--> <script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> <script type="text/javascript"> // 初始化配置 wx.config({ debug: true, // 正式上线后改成false不在弹出调试信息 appId: '<?php echo $appid;?>', timestamp: '<?php echo $timestamp;?>', nonceStr: '<?php echo $nonceStr;?>', signature: '<?php echo $signature;?>', jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'updateAppMessageShareData', //分享到朋友圈 'updateTimelineShareData',//分享给朋友 ] }); // 配置完成后会调用ready函数 wx.ready(function (res) { //分享到朋友圈 wx.updateTimelineShareData({ title: '调用成功!分享到朋友圈!', // 分享标题 link: 'http://www.liketube.cn/res/share.php', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: 'http://www.liketube.cn/res/1.jpg', // 分享图标 success: function (res) { // 分享成功 } }) wx.updateAppMessageShareData({ title: '调用成功!分享给好友!', // 分享标题 desc: '微信JSSDK1.6新版分享接口成功调用!', // 分享描述 link: 'http://www.liketube.cn/res/share.php', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: 'http://www.liketube.cn/res/1.jpg', // 分享图标 success: function (res) { // 分享成功 } }) }); //错误返回信息 wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 alert(res); }); </script>相关问题与解答1、Q: 如何获取微信公众号的access_token? A: 你可以通过调用微信公众平台提供的https://api.weixin.qq.com/cgibin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET接口获取access_token,APPID和APPSECRET分别为你在微信公众平台上申请的AppID和AppSecret。
2024年07月15日
89 阅读
0 评论
0 点赞
2024-07-15
PHP实现微信分享朋友圈和分享微信好友的代码
以下是用PHP编写的微信分享和分享微信好友的代码示例:分享微信朋友圈代码:<?php // 微信AppID和AppSecret $appId = 'your_app_id'; $appSecret = 'your_app_secret'; // 获取当前访问的URL $url = $_SERVER['REQUEST_URI']; // 获取当前操作的用户信息(这里假设已经获取到用户信息) $user = [ 'name' => '用户名', 'avatar' => '用户头像URL', // 其他用户信息... ]; // 构造请求微信接口的URL $wxApiUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=&redirect_uri=&response_type=code&scope=snsapi_publish&state="; ?> <a href="<?php echo $wxApiUrl; ?>" target="_blank">分享到微信朋友圈</a>分享微信好友代码:<?php // 微信AppID和AppSecret $appId = 'your_app_id'; $appSecret = 'your_app_secret'; // 获取当前操作的用户信息(这里假设已经获取到用户信息) $user = [ 'name' => '用户名', 'avatar' => '用户头像URL', // 其他用户信息... ]; // 构造请求微信接口的URL $wxApiUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=&redirect_uri=&response_type=code&scope=snsapi_contact&state="; ?> <a href="<?php echo $wxApiUrl; ?>" target="_blank">分享给微信好友</a>
2024年07月15日
113 阅读
0 评论
0 点赞
2024-07-05
Typecho上传附件失败最佳解决方法
打开/var/Typecho/Common.php 这个文件,找到下面这段代码:public static function isAppEngine(){ return !empty($_SERVER['HTTP_APPNAME']) // SAE || !!getenv('HTTP_BAE_ENV_APPID') // BAE || !!getenv('SERVER_SOFTWARE') // BAE 3.0 || (ini_get('acl.app_id') && class_exists('Alibaba')) // ACE || (isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'],'Google App Engine') !== false) // GAE ; }修改为:public static function isAppEngine(){ return false; }修改之后重启服务器,发现不起作用。2.继续下面的工作:找到usr/uploads这个文件夹,修改777权限,linux和Windows系统修改的方法不同,但网上都有很多介绍:Windows下网站目录777可读写权限设置方法 然后重启服务器,上传附件成功。3.但是又遇到了问题,上传一个图片之后,加入文章里面发现根本打不开这个图片,单独在浏览器输入这个图片的URL,显示:401 - Unauthorized: Access is denied due to invalid credentials.You do not have permission to view this directory or page using the credentials that you supplied.继续工作,打开IIS服务器,找到网站下面的uploads目录,点击选择权限,继续进行上面修改777的操作,修改之后重启服务器,完美解决!
2024年07月05日
101 阅读
0 评论
0 点赞
1
2