非常优秀 PHP JSON解析器程序
首先,我们先来看看性能测试数据:
代码如下 | 复制代码 |
STR: {"i": 23, "array": [1, null, false, true, ["aha", "baba", 23, {"test": 23}]]} STR: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] STR: {"a": 23.2234232} STR: {"long-str": "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.", } STR: ... json_encode($_SERVER) |
可以看到在大数据量的时候jsond的速度比json快多了。
项目地址:
Github:https://github.com/bukka/php-jsond
PECL:http://pecl.php.net/package/jsond
根据自身情况,选择相应的安装方法,安装成功后,查看phpinfo:
使用方法:
代码如下 | 复制代码 |
mixed jsond_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] ); |
filter函数过滤ip地址的方法:
代码如下 | 复制代码 |
echo filter_var("127.0.0.1","FILTER_VALIDATE_INT"); //返回true or false |
例子。
判断是否是合法IP
代码如下 | 复制代码 |
if(filter_var($ip, FILTER_VALIDATE_IP)) { |
判断是否是合法的公共IPv4地址,192.168.1.1这类的私有IP地址将会排除在外
代码如下 | 复制代码 |
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) { // it's valid } else { // it's not valid } |
判断是否是合法的IPv6地址
代码如下 | 复制代码 |
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) { // it's valid } else { // it's not valid } |
判断是否是public IPv4 IP或者是合法的Public IPv6 IP地址
代码如下 | 复制代码 |
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { // it's valid } else { // it's not valid } |
简单的正则
preg_match("/d{1,3}.d{1,3}.d{1,3}.d{1,3}/");// 此方法没不精确,学最大为255.255.255.255 但这个只是验证格式了,如999.999.999.999也可以通过验证。
我们进入升级改进
代码如下 | 复制代码 |
functionis_ip($gonten){ |
这样就符合我们的要求了
再介绍一种用判断ip地址:
代码如下 | 复制代码 |
$ipaddress = '201.103.2.2'; if( $iptest ) |
php代码
代码如下 | 复制代码 |
//使用实例 include 'Mobile_Detect.php'; // Check for any mobile device. // Check for any tablet. // Check for any mobile device, excluding tablets. if ($detect->isMobile() && !$detect->isTablet()) // Alternative to $detect->isAndroidOS() // Batch usage // Version check. |
php判断手机访问
代码如下 | 复制代码 |
ua = strtolower($_SERVER['HTTP_USER_AGENT']); $uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile|wap)/i"; if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap')) if (!empty($Loaction)) exit; }
/** |
js代码
测试代码:
var isIPhone = /iPhone/i.test(navigator.userAgent),
代码如下
复制代码
isIPad = /iPad/i.test(navigator.userAgent),
isAndroid = /android/i.test(navigator.userAgent);
var isIOS = isIPhone || isIPad;
alert(
"iPhone? "+isIPhone+"tr"+
"iPad? "+isIPad+"tr"+
"Android? "+isAndroid+"tr"+
"iOS? "+isIOS
);
自己在看到这个问题的时候,想到的是用ASCII码来处理,没往万能的正则上去想。好吧,下面来看看答案:
答案1:
代码如下 | 复制代码 |
$str = 'OpenAPI'; $length = mb_strlen($str); $new = ''; for($i = 0; $i < $length; $i++) $new .= ($i != 0 && ($num >= 65 && $num <= 90) && ($pre >= 97 && $pre <= 122)) ? "_{$str[$i]}" : $str[$i]; echo strtolower($new) . '<br>'; |
答案2:
代码如下 | 复制代码 |
echo strtolower(preg_replace('/((?<=[a-z])(?=[A-Z]))/', '_', $str)).'<br>'; |
那反过来下划线分割字符串转换成驼峰式字符串怎么搞呢
代码如下 | 复制代码 |
f = new File("d:/temp/t.txt") |
PHP扩展下载:https://github.com/krakjoe/pthreads
PHP手册文档:http://php.net/manual/zh/book.pthreads.php
在安装好扩展之后,就可以运用多线程了,下面贴个通过搜索结果抓取百度网盘内容的代码:
代码如下 | 复制代码 |
<?php |
相关文章
- 这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
- 本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
- 这篇文章主要介绍了gin 获取post请求的json body操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-15
- 新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下...2016-08-23
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成...2021-11-05
- 一、常量常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为大小写敏感。按照惯例常量标识符总是大写的。 常量名和其它任何 PHP 标签遵循...2015-10-30
C#使用Http Post方式传递Json数据字符串调用Web Service
这篇文章主要为大家详细介绍了C#使用Http Post方式传递Json数据字符串调用Web Service,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25- 本文通过两个示例讲解了一下Process类调用外部应用程序的基本用法,并简单讲解了StartInfo属性,有需要的朋友可以参考一下。...2020-06-25
- 这篇文章主要介绍了微信小程序 页面传值详解的相关资料,需要的朋友可以参考下...2017-03-13
- 这篇文章主要介绍了JavaScript预解析,对象的的相关资料,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助...2021-11-10
- 下面小编就为大家带来一篇js遍历json的key和value的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-01-26
- 大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
- 这篇文章主要介绍了uniapp微信小程序:key失效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
- 这篇文章主要介绍了详解.NET Core 3.0 里新的JSON API,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
- 本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
将c#编写的程序打包成应用程序的实现步骤分享(安装,卸载) 图文
时常会写用c#一些程序,但如何将他们和photoshop一样的大型软件打成一个压缩包,以便于发布....2020-06-25ASP.NET Core根据环境变量支持多个 appsettings.json配置文件
这篇文章主要介绍了ASP.NET Core根据环境变量支持多个 appsettings.json配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22基于Vue+Openlayer实现动态加载geojson的方法
本文通过实例代码给大家介绍基于Vue+Openlayer实现动态加载geojson的方法,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-09-01- 这篇文章主要介绍了微信小程序 网络请求(GET请求)详解的相关资料,需要的朋友可以参考下...2016-11-22
- 这篇文章主要给大家介绍了关于微信小程序如何获取图片宽度与高度的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10