首页
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
Search
1
乐橙CMS影视管理系统最全版本
109,326 阅读
2
VIP视频解析破解电影解析模拟破解影视解析
77,802 阅读
3
乐橙CMS影视管理系统4.0.18版本
16,941 阅读
4
新浪图片链接修复教程集合
15,129 阅读
5
反调试代码调试死机代码禁止F12代码
12,103 阅读
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
登录
Search
标签搜索
PHP
AI
LINUX
微信
MYSQL
树莓派
OpenClaw
ESP32S3
小智AI
P2P
JS
破解
乐橙cms
支付
uniapp
人工智能
技术趋势
智能玩具
ESP32
DIY
子沐~
累计撰写
128
篇文章
累计收到
372
条评论
首页
栏目
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
页面
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
搜索到
128
篇与
的结果
2019-04-03
【基础】你知道PHP7有哪些新特性吗?以下总结希望能帮到你
PHP 7使用新的Zend Engine 3.0将应用程序性能提高近两倍,内存消耗比PHP 5.6高出50%。它允许服务更多的并发用户,而不###需要任何额外的硬件。PHP 7是考虑到今天的工作负载而设计和重构的。PHP新功能总结*改进的性能 - 将PHPNG代码合并到PHP7中,速度是PHP 5的两倍。*降低内存消耗 - 优化的PHP 7使用较少的资源。*标量类型声明 - 现在可以强制执行参数和返回类型。*一致的64位支持 - 对64位体系结构机器的一致支持。*改进了异常层次 - 异常层次得到了改进*许多致命的错误转换为例外 - 例外范围增加,涵盖许多致命的错误转换为例外。*安全随机数发生器 - 增加新的安全随机数发生器API。*已弃用的SAPI和扩展已删除 - 各种旧的和不受支持的SAPI和扩展从最新版本中删除。*空合并运算符(?) - 添加了新的空合并运算符。*返回和标量类型声明 - 支持所添加的返回类型和参数类型。*匿名类 - 支持匿名添加。*零成本断言 - 支持零成本断言增加。标量类型声明在PHP 7中,引入了一个新的特性,即标量类型声明。标量类型声明有两个选项*强制 - 强制是默认模式,不需要指定。*严格 - 严格的模式已经明确暗示。功能参数的以下类型可以使用上述模式强制执行*float*int*bool*string*interfaces*array*callable强制模式<?php // Coercive mode function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); //9 ?>严格模式<?php // Strict mode declare(strict_types=1); function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); //Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, ... ?>返回类型声明有效的返回类型<?php declare(strict_types = 1); function returnIntValue(int $value): int { return $value; } print(returnIntValue(5)); ?>无效返回类型<?php declare(strict_types = 1); function returnIntValue(int $value): int { return $value + 1.0; } print(returnIntValue(5));//Fatal error: Uncaught TypeError: Return value of returnIntValue() must be of the type integer, float returned. ?>空合并运算符在PHP 7中,引入了一个新的特性,即空合并运算符(??)。它用来替代与isset()函数结合的三元操作。该空如果它存在,而###不是空合并运算符返回第一个操作数; 否则返回第二个操作数。<?php // fetch the value of $_GET['user'] and returns 'not passed' // if username is not passed $username = $_GET['username'] ?? 'not passed'; print($username); print("<br/>"); // Equivalent code using ternary operator $username = isset($_GET['username']) ? $_GET['username'] : 'not passed'; print($username); print("<br/>"); // Chaining ?? operation $username = $_GET['username'] ?? $_POST['username'] ?? 'not passed'; print($username); // output //not passed ?>飞船运算符它用来比较两个表达式。当第一个表达式分别小于,等于或大于第二个表达式时,它返回-1,0或1。字符串比较ASCII//integer comparison print( 1 <=> 1);print("<br/>"); print( 1 <=> 2);print("<br/>"); print( 2 <=> 1);print("<br/>"); // output 0 -1 1常量数组使用define()函数定义数组常量。在PHP 5.6中,只能使用const关键字来定义它们。<?php //define a array using define function define('animals', [ 'dog', 'cat', 'bird' ]); print(animals[1]); // output cat ?>匿名类现在可以使用新类来定义匿名类。匿名类可以用来代替完整的类定义。<?php interface Logger { public function log(string $msg); } class Application { private $logger; public function getLogger(): Logger { return $this->logger; } public function setLogger(Logger $logger) { $this->logger = $logger; } } $app = new Application; $app->setLogger(new class implements Logger { public function log(string $msg) { print($msg); } }); $app->getLogger()->log("My first Log Message"); ?> //output My first Log MessageClosure类Closure :: call()方法被添加为一个简短的方式来临时绑定一个对象作用域到一个闭包并调用它。与PHP5的bindTo相比,###它的性能要快得多。在PHP 7之前<?php class A { private $x = 1; } // Define a closure Pre PHP 7 code $getValue = function() { return $this->x; }; // Bind a clousure $value = $getValue->bindTo(new A, 'A'); print($value()); //output 1 ?>PHP 7+<?php class A { private $x = 1; } // PHP 7+ code, Define $value = function() { return $this->x; }; print($value->call(new A)); //output 1 ?>过滤unserializePHP 7引入了过滤的unserialize()函数,以便在对不可信数据上的对象进行反序列化时提供更好的安全性。它可以防止可能###的代码注入,并使开发人员能够对可以反序列化的类进行白名单<?php class MyClass1 { public $obj1prop; } class MyClass2 { public $obj2prop; } $obj1 = new MyClass1(); $obj1->obj1prop = 1; $obj2 = new MyClass2(); $obj2->obj2prop = 2; $serializedObj1 = serialize($obj1); $serializedObj2 = serialize($obj2); // default behaviour that accepts all classes // second argument can be ommited. // if allowed_classes is passed as false, unserialize converts all objects into __PHP_Incomplete_Class object $data = unserialize($serializedObj1 , ["allowed_classes" => true]); // converts all objects into __PHP_Incomplete_Class object except those of MyClass1 and MyClass2 $data2 = unserialize($serializedObj2 , ["allowed_classes" => ["MyClass1", "MyClass2"]]); print($data->obj1prop); print("<br/>"); print($data2->obj2prop); //output 1 2 ?>IntlChar在PHP7中,增加了一个新的IntlChar类,它试图揭示额外的ICU功能。这个类定义了一些静态方法和常量,可以用来处理###Unicode字符。在使用这个课程之前,你需要安装Intl扩展。<?php printf('%x', IntlChar::CODEPOINT_MAX); print (IntlChar::charName('@')); print(IntlChar::ispunct('!')); //output 10ffff COMMERCIAL AT true ?>CSPRNG在PHP 7中,引入了两个新的函数来以跨平台的方式生成密码安全的整数和字符串。*random_bytes() - 生成密码安全的伪随机字节。*random_int() - 生成密码安全的伪随机整数<?php $bytes = random_bytes(5); print(bin2hex($bytes)); //output 54cc305593 print(random_int(100, 999)); print(""); print(random_int(-1000, 0)); //output 614 -882 ?>使用声明从PHP7开始,可以使用单个use语句从相同的命名空间导入类,函数和常量,而不是使用多个use语句。<?php // Before PHP 7 use com\tutorialspoint\ClassA; use com\tutorialspoint\ClassB; use com\tutorialspoint\ClassC as C; use function com\tutorialspoint\fn_a; use function com\tutorialspoint\fn_b; use function com\tutorialspoint\fn_c; use const com\tutorialspoint\ConstA; use const com\tutorialspoint\ConstB; use const com\tutorialspoint\ConstC; // PHP 7+ code use com\tutorialspoint\{ClassA, ClassB, ClassC as C}; use function com\tutorialspoint\{fn_a, fn_b, fn_c}; use const com\tutorialspoint\{ConstA, ConstB, ConstC}; ?>整数部分PHP 7引入了一个新的函数intdiv(),它对它的操作数进行整数除法,并将除法运算返回为int。<?php $value = intdiv(10,3); var_dump($value); print(" "); print($value); //output int(3) 3 ?>会话选项session_start()函数接受来自PHP7 + 的一系列选项来覆盖php.ini中设置的会话配置指令。这些选项支持###session.lazy_write,默认情况下,它会导致PHP在会话数据发生更改时覆盖任何会话文件。添加的另一个选项是read_and_close,它表示应该读取会话数据,然后应该立即关闭会话。例如,将session.cache_limiter设置为private,并使用以下代码片段将标志设置为在读取完毕后立即关闭会话。<?php session_start([ 'cache_limiter' => 'private', 'read_and_close' => true, ]); ?>弃用PHP 4样式构造函数是与它们定义的类具有相同名称的方法,现在已被弃用,并且将来将被删除。如果PHP 4的构造函数是类中定###义的唯一构造函数,则PHP 7将发出E_DEPRECATED。实现__construct()方法的类不受影响。<?php class A { function A() { print('Style Constructor'); } } ?>对非静态方法的静态调用已被弃用,并可能在将来被删除<?php class A { function b() { print('Non-static call'); } } A::b(); // Deprecated: Non-static method A::b() should not be called statically in...Non-static call ?>错误处理从PHP 7开始,错误处理和报告已经改变。而不是通过PHP 5使用的传统错误报告机制来报告错误,现在大多数错误都是通过抛出###错误异常来处理的。与异常类似,这些错误异常会一直冒泡,直到它们到达第一个匹配的catch块。如果没有匹配的块,则使用###set_exception_handler()安装的默认异常处理程序将被调用。如果没有默认的异常处理程序,那么异常将被转换为致命错误,并将像传统的错误一样处理。由于错误层次结构不是从Exception扩展的,所以使用catch(Exception $ e){...}块来处理PHP 5中未捕获的异常的代码将###不会处理这样的错误。catch(Error $ e){...}块或set_exception_handler()处理程序是处理致命错误所必需的。<?php class MathOperations { protected $n = 10; // Try to get the Division by Zero error object and display as Exception public function doOperation(): string { try { $value = $this->n % 0; return $value; } catch (DivisionByZeroError $e) { return $e->getMessage(); } } } $mathOperationsObj = new MathOperations(); print($mathOperationsObj->doOperation()); // output Modulo by zero ?>
2019年04月03日
1,855 阅读
0 评论
0 点赞
2019-04-02
js控制底层滚动
//设置底层禁止滚动(true:禁止滚动;false:打开滚动) function stopBodyScroll (isFixed) { var bodyEl = document.body; if (isFixed) { scrollTop = $(window).scrollTop(); bodyEl.style.position = 'fixed'; bodyEl.style.width = '100%'; } else { bodyEl.style.position = ''; document.body.scrollTop = scrollTop; } }
2019年04月02日
1,978 阅读
1 评论
0 点赞
2019-04-01
解决跨域AJAX提示No 'Access-Control-Allow-Origin' header is present on the requested resource,并且The response had HTTP status code 404
header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');其中*代表允许域名,可以更改这个限制调用。
2019年04月01日
2,163 阅读
1 评论
0 点赞
2019-04-01
爬虫UA大全
百度PC: Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html) 百度移动: Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html) 360搜索 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0); 360网站安全检测 360spider (http://webscan.360.cn) Google Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) Google图片搜索 Googlebot-Image/1.0 Adwords移动网络 AdsBot-Google-Mobile (+http://www.google.com/mobile/adsbot.html) Mozilla (iPhone; U; CPU iPhone OS 3 0 like Mac OS X) AppleWebKit (KHTML, like Gecko) Mobile Safari 微软 bing,必应 Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) 腾讯搜搜 Sosospider+(+http://help.soso.com/webspider.htm) 搜搜图片 Sosoimagespider+(+http://help.soso.com/soso-image-spider.htm) 雅虎英文 Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) 雅虎中国 Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html) 搜狗图片 http://pic.sogou.com Sogou Pic Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07) 搜狗 Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07) 网易有道 Mozilla/5.0 (compatible; YoudaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; ) 瑞典 Speedy Spider Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/) 俄罗斯 yandex Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots) 宜搜 EasouSpider Mozilla/5.0 (compatible; EasouSpider; +http://www.easou.com/search/spider.html) 华为赛门铁克蜘蛛 HuaweiSymantecSpider/1.0+DSE-support@huaweisymantec.com+(compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR ; http://www.huaweisymantec.com/cn/IRL/spider) 华为赛门铁克科技有限公司网页信誉分析系统的一个页面爬取程序,其作用是用于爬取互联网网页并进行信誉分析,从而检查该网站上 的是否含有恶意代码。 七牛镜像蜘蛛 qiniu-imgstg-spider-1.0 监控宝 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; JianKongBao Monitor 1.1) DNSPod监控 DNSPod-Monitor/2.0 俄罗斯 LinkpadBot Mozilla/5.0 (compatible; LinkpadBot/1.06; +http://www.linkpad.ru) 英国 MJ12bot Mozilla/5.0 (compatible; MJ12bot/v1.4.0; http://www.majestic12.co.uk/bot.php?+)
2019年04月01日
9,582 阅读
0 评论
0 点赞
2019-04-01
速盘:speedpan 免登陆百度网盘不限速下载
speedpan速盘下载器(免登录百度网盘不限速),由吾爱破解推出的一款网盘下载工具,支持免登陆百度网盘,可以无限速下载网###盘资源,支持云盘资源搜索,用户还可以登录自己的百度网盘账号来下载指定资源。本次放出speedpan速盘下载,想要一款好用###的网盘下载工具的朋友们不妨试试吧!与pandownload不相上下亲测体验,速度满了,10M!下载速度杠杠的!提示:软件界面很简单,跟百度云盘原版差不多,功能都在明面上,不用琢磨!支持资源搜索,好东西,你值得拥有!v2.0.3更新时间:2019/3/8更新内容:1、修复分享链接无法保存到我的网盘的问题;2、增加悬浮窗口,用于显示实时进度和速度;3、所有配置文件都保存到%appdata%SpeedPan目录下以免出现安装到C盘出现无法写入的错误,也防止打包分享时连同配置文件一起带上;4、改进网盘管理前进后退体验;5、新增皮肤“春意盎然”做为默认皮肤包;6、查询提取码界面增加复制链接和提取码按钮;7、大幅度提升打包下载速度。6月12日更新1、修复 下载任务过多时偶尔会导致程序启动后无法显示主界面的问题。2、大大加快了启动速度(第一次启动还和原来一样,之后的启动就快了)。3、自带的aria2换成无连接限制的版本。4、改善对百度分享链接的识别,不再严格要求格式正确。5、当程序在系统托盘中运行时双击主程序或快捷方式也可以呼出主界面。6月11日更新1、支持下载分享的文件夹,下载完成后会重建目录结构并按目录结构保存文件。2、网盘搜索结果右键菜单增加“打开文件所在目录”菜单项。3、修复 加密分享创建失败,被创建成公开分享的问题。4、修复 下载出错后点击“重试”程序没有重新获取链接并继续下载的问题。5、修复 系统托盘图标的右键菜单出现重复菜单项的问题。点击下载
2019年04月01日
1,813 阅读
0 评论
0 点赞
2019-04-01
emlog文章GID断号自动补入
EMLOG在删除文章后GID就会断掉,现在只需要简单修改一下代码,后面新增文章的时候就会优先选择断掉的文章ID。路径在include/model/log_model.php原始代码如下:/** * 添加文章、页面 * * @param array $logData * @return int */ function addlog($logData) { $kItem = array(); $dItem = array(); foreach ($logData as $key => $data) { $kItem[] = $key; $dItem[] = $data; } $field = implode(',', $kItem); $values = "'" . implode("','", $dItem) . "'"; $this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)"); $logid = $this->db->insert_id(); return $logid; }修改为以下代码:/** * 添加文章、页面 * * @param array $logData * @return int */ function addlog($logData) { $kItem = array(); $dItem = array(); foreach ($logData as $key => $data) { $kItem[] = $key; $dItem[] = $data; } $field = implode(',', $kItem); $values = "'" . implode("','", $dItem) . "'"; $gidarr[0]='0'; $res = $this->db->query("SELECT gid From " . DB_PREFIX . "blog ORDER BY gid ASC"); while ($row = $this->db->fetch_array($res)) { $gidarr[] = $row['gid']; } foreach($gidarr as $key=>$val){ if($key!=$val){ $field = 'gid,'.$field; $values = "'".$key."',".$values; break; } } $this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)"); $logid = $this->db->insert_id(); return $logid; }这样就可以解决emlog文章断ID的问题了!
2019年04月01日
1,568 阅读
0 评论
0 点赞
2019-03-31
typecho如何开启https访问
1:申请SSL证书在腾讯云,七牛云都可以申请到证书,我也给大家推荐一个DV证书申请地址[首年一元]:https://www.jumyun.cn/ssl/2:在typecho中设置在根目录的config.inc.php文件中,插入一行:define('__TYPECHO_SECURE__',true);注意:Chrome内核的浏览器有不安全提示的时候,需要找到主题目录下面的comments.php文件再将其中的$this->commentUrl(),替换为:echo str_replace("http","https",$this->commentUrl());3:重定向` 将下方代码添加到Ningx配置文件里面去server { listen 80; server_name tianyaseo.com www.chendexin.com; rewrite ^(.*) https://www.chendexin.com$1 permanent; }完成上述操作后,全部保存一下,【当然之前每一步也是需要保存的】。打开自己的网站查看有没有开启。如果没有,在根据实际情况检查或者在评论咨询我。
2019年03月31日
2,688 阅读
3 评论
0 点赞
2019-03-31
价值3000元的唤醒支付宝红包原理
<html class="normal "> <head> <meta charset="UTF-8"> <title>支付宝</title> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="format-detection" content="telephone=no"> <meta name="format-detection" content="email=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"> <style> *, :before, :after { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,form,fieldset,legend,input,textarea,p,blockquote,th,td { margin: 0; padding: 0; } table { border-collapse: collapse; border-spacing: 0; } fieldset,img { border: 0; } li { list-style: none; } caption,th { text-align: left; } q:before,q:after { content: ""; } input:password { ime-mode: disabled; } :focus { outline: 0; } html,body { text-align: center; -webkit-user-select: none; user-select: none; font-family:"Helvetica Neue",Helvetica,STHeiTi,sans-serif; font-size: 12px; line-height: 1.5; text-align: center; } html{ background:#181c27; } .download-cover{ display:block; height:360px; background-position:center 0; background-repeat:no-repeat; -webkit-background-size:320px auto; -moz-background-size:320px auto; -ms-background-size:320px auto; -o-background-size:320px auto; background-size:320px auto; margin:0 auto; overflow:hidden; } .download-cover .download-cover-slogan, .download-cover .download-cover-picture{ display:none; } .download-interaction{ margin-top:20px; height:42px; padding-bottom:20px; } .download-interaction .download-button{ display:none; text-decoration: none; font-size: 16px; color: #ffffff; letter-spacing: 2px; margin:0 48px; background:#181c27; height:42px; line-height:42px; text-align:center; border:1px solid #7f7f87; border-top-left-radius:2px; border-top-right-radius:2px; border-bottom-left-radius:2px; border-bottom-right-radius:2px; -webkit-background-clip:padding-box; background-clip:padding-box; } .download-interaction .download-opening, .download-interaction .download-asking{ display:none; color:#fff; font-size:15px; } .download-interaction.download-interaction-asking .download-asking, .download-interaction.download-interaction-opening .download-opening, .download-interaction.download-interaction-button .download-button{ display:block; } .download-putcenter, .copyright{ font-size:12px; color:#999; text-align:center; } .download-putcenter{ padding-top:10px; } .download-putcenter .version, .download-putcenter .date, .download-putcenter .size{ margin-left:3px; } .copyright{ padding-bottom:10px; } a{ color:#0af; text-decoration:none; } </style> <script> window.readyToRun = []; </script> </head> <body ryt14421="1"> <script> function track(type) { var img = new Image(); img.onload = function(){}; img.onerror = function(){}; img.src = 'https://cmspromo.alipay.com/mseed/index.jsonp?seed=startAppFrom_'+type+'&t='+(new Date()).getTime(); } if (!location.hash) { track('mobileweb'); } </script> <script> if (typeof AlipayWallet !== 'object') { AlipayWallet = {}; } (function () { var ua = navigator.userAgent.toLowerCase(), locked = false, domLoaded = document.readyState==='complete', delayToRun; function customClickEvent() { var clickEvt; if (window.CustomEvent) { clickEvt = new window.CustomEvent('click', { canBubble: true, cancelable: true }); } else { clickEvt = document.createEvent('Event'); clickEvt.initEvent('click', true, true); } return clickEvt; } function getAndroidVersion() { var match = ua.match(/android\s([0-9\.]*)/); return match ? match[1] : false; } var noIntentTest = /aliapp|360 aphone|weibo|windvane|ucbrowser|baidubrowser/.test(ua); var hasIntentTest = /chrome|samsung/.test(ua); var isAndroid = /android|adr/.test(ua) && !(/windows phone/.test(ua)); var canIntent = !noIntentTest && hasIntentTest && isAndroid; var openInIfr = /weibo|m353/.test(ua); var inWeibo = ua.indexOf('weibo')>-1; if (ua.indexOf('m353')>-1 && !noIntentTest) { canIntent = false; } // 是否在 webview var inWebview = ''; if (inWebview) { canIntent = false; } /** * 打开钱包 * @param {string} params 唤起钱包的参数设置('alipays://platformapi/startapp?'后面的值) * @param {boolean} jumpUrl 唤起钱包后,android下要跳转到的URL; * 若传"default",则为https://d.alipay.com/i/index.htm?nojump=1#once */ AlipayWallet.open = function (params, jumpUrl) { if (!domLoaded && (ua.indexOf('360 aphone')>-1 || canIntent)) { var arg = arguments; delayToRun = function () { AlipayWallet.open.apply(null, arg); delayToRun = null; }; return; } // 唤起锁定,避免重复唤起 if (locked) { return; } locked = true; var o; // 参数容错 if (typeof params==='object') { o = params; } else { o = { params: params, jumpUrl: jumpUrl }; } // 参数容错 if (typeof o.params !== 'string') { o.params = ''; } if (typeof o.openAppStore !== 'boolean') { o.openAppStore = true; } o.params = o.params || 'appId=20000001'; o.params = o.params + ''; o.params = o.params + '&_t=' + (new Date()-0); if (o.params.indexOf('startapp?')>-1) { o.params = o.params.split('startapp?')[1]; } else if (o.params.indexOf('startApp?')>-1) { o.params = o.params.split('startApp?')[1]; } // 是否为RC环境 var isRc = ''; // 是否唤起re包 var isRe = ''; if (typeof o.isRe==='undefined') { o.isRe = !!isRe; } // 通过alipays协议唤起钱包 var schemePrefix; if (ua.indexOf('mac os')>-1 && ua.indexOf('mobile')>-1) { // IOS RC包前缀为 alipaysrc if (isRc) { if (o.isRe) { schemePrefix = 'alipayrerc'; } else { schemePrefix = 'alipaysrc'; } } } if (!schemePrefix && o.isRe) { schemePrefix = 'alipayre'; } schemePrefix = schemePrefix || 'alipays'; // 由于历史原因,对 alipayqr 前缀做特殊处理 if (location.href.indexOf('scheme=alipayqr') > -1) { schemePrefix = 'alipayqr'; isRc = false; } if (!canIntent) { var alipaysUrl = schemePrefix + '://platformapi/startapp?' + o.params; if ( ua.indexOf('qq/') > -1 || ( ua.indexOf('safari') > -1 && ua.indexOf('os 9_') > -1 ) ) { var openSchemeLink = document.getElementById('openSchemeLink'); if (!openSchemeLink) { openSchemeLink = document.createElement('a'); openSchemeLink.id = 'openSchemeLink'; openSchemeLink.style.display = 'none'; document.body.appendChild(openSchemeLink); } openSchemeLink.href = alipaysUrl; // 执行click openSchemeLink.dispatchEvent(customClickEvent()); } else { var ifr = document.createElement('iframe'); ifr.src = alipaysUrl; ifr.style.display = 'none'; document.body.appendChild(ifr); } } else { // android 下 chrome 浏览器通过 intent 协议唤起钱包 var packageKey = 'AlipayGphone'; if (isRc) { packageKey = 'AlipayGphoneRC'; } var intentUrl = 'intent://platformapi/startapp?'+o.params+'#Intent;scheme='+ schemePrefix +';package=com.eg.android.'+ packageKey +';end'; var openIntentLink = document.getElementById('openIntentLink'); if (!openIntentLink) { openIntentLink = document.createElement('a'); openIntentLink.id = 'openIntentLink'; openIntentLink.style.display = 'none'; document.body.appendChild(openIntentLink); } openIntentLink.href = intentUrl; // 执行click openIntentLink.dispatchEvent(customClickEvent()); } // 延迟移除用来唤起钱包的IFRAME并跳转到下载页 setTimeout(function () { if (typeof o.jumpUrl !== 'string') { o.jumpUrl = ''; } // URL白名单 var urlPattern = /^http(s)?:\/\/([a-z0-9_\-]+\.)*(alipay|taobao|alibaba|alibaba-inc|tmall|koubei)\.(com|net|cn|com\.cn)(:\d+)?([/;?].*)?$/; // 默认跳转地址 if (o.jumpUrl==='default') { o.jumpUrl = 'https://ds.alipay.com/?nojump=true'; } if (o.jumpUrl && typeof o.jumpUrl==='string' && urlPattern.test(o.jumpUrl)) { location.href = o.jumpUrl; } }, 1000) // 唤起加锁,避免短时间内被重复唤起 setTimeout(function () { locked = false; }, 2500) } if (!domLoaded) { document.addEventListener('DOMContentLoaded', function () { domLoaded = true; if (typeof delayToRun === 'function') { delayToRun(); } }, false); } })(); </script> <script type="text/javascript"> (function(){ var schemeParam = ''; schemeParam = schemeParam.replace(/&/ig, '&'); if (!location.hash) { AlipayWallet.open({ params: schemeParam, jumpUrl: '', openAppStore: false }); } function pageFuntion(){ } if (/complete|loaded|interactive/.test(document.readyState && document.body)) { pageFuntion(); } else { document.addEventListener('DOMContentLoaded', function () { pageFuntion(); }, true); } })(); </script> <iframe src="alipays://platformapi/startapp?appId=20000001&_t=1464601210564" style="display: none;"></iframe> <style> .normal .download-cover{ background-image:url("https://os.alipayobjects.com/rmsportal/hNfINSQHpUoLRly.png"); } html{background-color:#019fe8;} a{color:#8cffff;} .download-interaction .download-button{background:#019fe8;border:1px solid #fff;} .download-putcenter, .copyright{color:#fff;} </style> <script> window.readyToRun.push(function () { setTimeout(function () { var downloadCover = document.getElementById('downloadCover'); if (downloadCover) { downloadCover.style.backgroundImage = 'url(https://os.alipayobjects.com/rmsportal/hNfINSQHpUoLRly.png)'; } }, 50); }); </script> <div class="download-view-wrap" id="downloadViewWrap"> <div class="wrap-view-addon-1"></div> <div class="wrap-view-addon-2"></div> <div class="wrap-view-addon-3"></div> <div class="wrap-view-addon-4"></div> <div class="download-inner-view" id="downloadInnerView"> <div class="inner-view-addon-1"></div> <div class="inner-view-addon-2"></div> <div class="inner-view-addon-3"></div> <div class="inner-view-addon-4"></div> <div class="download-view" id="downloadView"> <div class="download-view-addon-1"></div> <div class="download-view-addon-2"></div> <div class="download-view-addon-3"></div> <div class="download-view-addon-4"></div> <div class="download-cover" id="downloadCover" style="background-image: url("https://os.alipayobjects.com/rmsportal/hNfINSQHpUoLRly.png");"> <div class="download-cover-logo" id="downloadCoverLogo"></div> <div class="download-cover-slogan" id="downloadCoverSlogan"></div> <div class="download-cover-picture" id="downloadCoverPicture"> <div class="download-cover-picture-1"></div> <div class="download-cover-picture-2"></div> <div class="download-cover-picture-3"></div> <div class="download-cover-picture-4"></div> </div> </div> <div id="J_downloadInteraction" class="download-interaction download-interaction-button"> <div class="inner-interaction"> <p class="download-opening">正在打开支付宝<span class="download-opening-1">.</span><span class="download-opening-2">.</span><span class="download-opening-3">.</span></p> <p class="download-asking">如果没有打开支付宝,<a id="J_downloadBtn" href="https://itunes.apple.com/cn/app/id333206289?mt=8">请下载最新版</a></p> <a id="J_downloadBtn" href="https://itunes.apple.com/cn/app/id333206289?mt=8" class="download-button">立即下载</a> </div> </div> <script> document.getElementById('J_downloadBtn').onclick = function () { var ifr = document.createElement('iframe'); ifr.src = 'itms-apps://itunes.apple.com/app/zhi-fu-bao/id333206289?mt=8'; ifr.style.display = 'none'; document.body.appendChild(ifr); location.href = 'itms-apps://itunes.apple.com/app/zhi-fu-bao/id333206289?mt=8'; }; </script> </div> </div> </div> <div class="base-info"> <div class="download-putcenter"> <span class="word">最新版本:</span> <span class="version">9.6.6</span> <span class="date">(2016-05-10)</span> <span class="size">93.2MB</span> </div> <p class="copyright">支付宝版权所有 © 2004 - 2016</p> </div> <script> function jsBridgeRun(fn) { if (typeof window.AlipayJSBridge==='object' && window.AlipayJSBridge.startupParams) { fn(); } else { document.addEventListener('AlipayJSBridgeReady', function () { fn(); }, false); } } jsBridgeRun(function () { AlipayJSBridge.call("hideOptionMenu"); }); // 等待运行函数 var rtrLen = window.readyToRun.length; if(window.readyToRun.length) { var rtrIdx, rtrFn; for(rtrIdx=0; rtrIdx<rtrLen; rtrIdx++) { rtrFn = window.readyToRun[rtrIdx]; typeof rtrFn==='function' && rtrFn(); } window.readyToRun = []; } </script></body></html>
2019年03月31日
1,700 阅读
0 评论
0 点赞
2019-03-31
jsonp转数组函数jsonp_decode
分享一个可以跟json一样用的函数jsonp_decode,能把jsonp格式数据转为php数组或对象。/** * 把jsonp转为php数组 * @param string $jsonp jsonp字符串 * @param boolean $assoc 当该参数为true时,将返回array而非object * @return array */ function jsonp_decode($jsonp, $assoc = false) { $jsonp = trim($jsonp); if(isset($jsonp[0]) && $jsonp[0] !== '[' && $jsonp[0] !== '{') { $begin = strpos($jsonp, '('); if(false !== $begin) { $end = strrpos($jsonp, ')'); if(false !== $end) { $jsonp = substr($jsonp, $begin + 1, $end - $begin - 1); } } } return json_decode($jsonp, $assoc); }
2019年03月31日
2,024 阅读
2 评论
0 点赞
2019-03-31
苹果cms v10模板大橙子vfed v3.1.5破解版
演示站: http://vfed.cc/官方介绍:PHP版本≥5.6主题优化:全站响应式 后台自定义CSS 自定义logo/favicon主题模块:视频 文章 专题 用户中心 站内公告 影院热映搜索功能:搜索联想 热门搜索 搜索记录 一键求片 文章搜索视频功能:播放记录 切换接口 视频报错 自动播放下一集视频解析:二次解析 广告覆盖 延时加载 内置无广告解析 自定义广告下载地址:[hide]https://u18345104.pipipan.com/fs/18345104-336619935[/hide]使用教程:教程直达
2019年03月31日
4,261 阅读
7 评论
0 点赞
1
...
9
10
11
...
13