推荐Mac上面一款不错的搜索软件Alfred聚焦搜索

网站管理员 发表了文章 • 0 个评论 • 252 次浏览 • 2018-10-20 20:47 • 来自相关话题

### Alfred是Mac上面一款不错的搜索软件,官网可以直接下载,而且免费,当然还有付费版的powerpack,增强版扩展,功能更多更强,

|类型|费用|授权范围|版本|
|:-:|:-:|:-|:-|
|Single License|£19|Single User|v3 License|
|Family License|£29|Family under one roof|v3 License|
|Mega Supporter|£35|Single User|Free Lifetime Upgrades|


@网友[endosome](https://www.v2ex.com/t/286133)说的
>Powerpack 就是拓展 alfred 功能的。
>
>打个比方, ie 浏览器没有扩展,很多人用得也很 happy
>firefox 浏览器和 chrome 浏览器可以加载扩展,通过扩展可以获得多种多样的效果
>
>买 Powerpack ,就类似于付费给 ie 浏览器,让 ie 浏览器也能像 firefox 一样添加扩展,来实现自己>的特定目标。
>
>geeker 可能用得比较多。对于普通用户来说,免费版足够了。 查看全部

### Alfred是Mac上面一款不错的搜索软件,官网可以直接下载,而且免费,当然还有付费版的powerpack,增强版扩展,功能更多更强,

|类型|费用|授权范围|版本|
|:-:|:-:|:-|:-|
|Single License|£19|Single User|v3 License|
|Family License|£29|Family under one roof|v3 License|
|Mega Supporter|£35|Single User|Free Lifetime Upgrades|


@网友[endosome](https://www.v2ex.com/t/286133)说的
>Powerpack 就是拓展 alfred 功能的。
>
>打个比方, ie 浏览器没有扩展,很多人用得也很 happy
>firefox 浏览器和 chrome 浏览器可以加载扩展,通过扩展可以获得多种多样的效果
>
>买 Powerpack ,就类似于付费给 ie 浏览器,让 ie 浏览器也能像 firefox 一样添加扩展,来实现自己>的特定目标。
>
>geeker 可能用得比较多。对于普通用户来说,免费版足够了。

整理了一份软件开发各项技能的表格

网站管理员 发表了文章 • 0 个评论 • 330 次浏览 • 2018-08-14 14:26 • 来自相关话题

### 背景
作为开发者学习要学习一门的新的语言,或者搜索相关的资料是有一定的难度的,通常会选择百度、谷歌等搜索引擎来帮我们完成知识的补充,但是这远远不够的,因为我们很有可能收到我们不想要的,或者说错误的引导,所以学习建议还是
学习官方文档,或者一些比较成熟的社区,下面是[伯乐在线](https://github.com/jobbole/)整理的一份详细的```各个语言的资料大全```,涉及的功能特别多,数据接口,算法,代码分析,模版,web,数据库,图片,文本处理,自然语言,
机器学习,第三发库等等,内容十分的丰富,所以我特意这里一下,生成了一个表格,方便大家观赏。

### 技能表

|项目|语言|简介|
|:-:|:-:|:-:|:-:|
|[translation-project](https://www.github.com/jobbole/translation-project)|translationproject|伯乐在线翻译组|
|[awesome-go-cn](https://www.github.com/jobbole/awesome-go-cn)|go|Go 资源大全中文版, 内容包括:Web框架、模板引擎、表单、身份认证、数据库、ORM框架、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析、教程和(电子)书等。|
|[awesome-cpp-cn](https://www.github.com/jobbole/awesome-cpp-cn)|cpp|C++ 资源大全中文版,标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等|
|[translation-playground](https://www.github.com/jobbole ... ground)|translationplayground|经典编程书籍大全,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试等|
|[awesome-programming-books](https://www.github.com/jobbole ... -books)|programming|PHP资源大全中文版,库、框架、模板、安全、代码分析、日志、第三方库、配置工具、Web 工具等|
|[awesome-php-cn](https://www.github.com/jobbole/awesome-php-cn)|php|Python资源大全中文版,包括:Web框架、网络爬虫、模板引擎、数据库、数据可视化、图片处理等,由伯乐在线持续更新。|
|[awesome-python-cn](https://www.github.com/jobbole/awesome-python-cn)|python|JavaScript 资源大全中文版,内容包括:包管理器、加载器、测试框架、运行器、QA、MVC框架和库、模板引擎等|
|[awesome-javascript-cn](https://www.github.com/jobbole ... ipt-cn)|javascript|Java资源大全中文版,包括开发库、开发工具、网站、博客、微信、微博等,由伯乐在线持续更新。|
|[awesome-java-cn](https://www.github.com/jobbole/awesome-java-cn)|java|DotNet 资源大全中文版,内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等。|
|[awesome-dotnet-cn](https://www.github.com/jobbole/awesome-dotnet-cn)|dotnet|CSS 资源大全中文版,内容包括:CSS预处理器、框架、CSS结构、代码风格指南、命名习惯等等|
|[awesome-css-cn](https://www.github.com/jobbole/awesome-css-cn)|css|系统管理员资源大全中文版,备份/克隆软件、云计算/云存储、协作软件、配置管理、日志管理、监控、项目管理等|
|[awesome-sysadmin-cn](https://www.github.com/jobbole/awesome-sysadmin-cn)|sysadmin|Android 资源大全中文版,包括:图表、游戏开发、GUI、崩溃检测、调试工具等,由伯乐在线持续更新。|
|[awesome-android-cn](https://www.github.com/jobbole/awesome-android-cn)|android|C 资源大全中文版,包括了:构建系统、编译器、数据库、加密、初中高的教程/指南、书籍、库等。|
|[awesome-c-cn](https://www.github.com/jobbole/awesome-c-cn)|c|机器学习资源大全中文版,包括机器学习领域的框架、库以及软件|
|[awesome-machine-learning-cn](https://www.github.com/jobbole ... ing-cn)|machinelearning|MySQL 资源大全中文版,分析工具、备份、性能测试、配置、部署、GUI 等|
|[awesome-mysql-cn](https://www.github.com/jobbole/awesome-mysql-cn)|mysql|iOS 资源大全中文版,内容包括:框架、组件、测试、Apple Store、SDK、XCode、网站、书籍等|
|[awesome-ios-cn](https://www.github.com/jobbole/awesome-ios-cn)|ios|OptiKey Wiki [ 简体中文翻译]|
|[OptiKeyWiki-ZH](https://www.github.com/jobbole/OptiKeyWiki-ZH)|OptiKeyWikiZH|2015 年在微信热传的 100+ 篇经典技术文章|
|[awesome-wechat-dev-posts-2015](https://www.github.com/jobbole ... s-2015)|wechatdevposts2015|设计师资源大全,包含:ICON图标、Logo设计、PhotoShop插件、交互设计工具、流程图、线框图/原型图、设计博客等|
|[ProgrammingProjectList](https://www.github.com/jobbole ... ctList)|ProgrammingProjectList|如果有人让你推荐 Python 技术书,请让他看这个列表|
|[awesome-design-cn](https://www.github.com/jobbole/awesome-design-cn)|design|如果有人让你推荐前端技术书,请让他看这个列表|
|[awesome-python-books](https://www.github.com/jobbole/awesome-python-books)|python|前端技能栈 - 前端开发入门、进阶的参考指南|
|[awesome-web-dev-books](https://www.github.com/jobbole ... -books)|webdev|前端开发者都应知道的 jQuery 小技巧|
|[web-skill-set](https://www.github.com/jobbole/web-skill-set)|webskillset| |
|[jquery-tips-everyone-should-know](https://www.github.com/jobbole ... d-know)|jquerytipseveryoneshouldknow| |


### php代码实现抓取

```
composer require guzzle/guzzle
```

```php

require_once __DIR__ . '/../vendor/autoload.php';

$client = new \GuzzleHttp\Client([
'verify' => false,
]);
$req = $client->get('https://github.com/jobbole');
$content = $req->getBody()->getContents();

$data = [];
if (preg_match_all('#[^>]+href="([^"]+)"[^>]+>([^([^ 查看全部

### 背景
作为开发者学习要学习一门的新的语言,或者搜索相关的资料是有一定的难度的,通常会选择百度、谷歌等搜索引擎来帮我们完成知识的补充,但是这远远不够的,因为我们很有可能收到我们不想要的,或者说错误的引导,所以学习建议还是
学习官方文档,或者一些比较成熟的社区,下面是[伯乐在线](https://github.com/jobbole/)整理的一份详细的```各个语言的资料大全```,涉及的功能特别多,数据接口,算法,代码分析,模版,web,数据库,图片,文本处理,自然语言,
机器学习,第三发库等等,内容十分的丰富,所以我特意这里一下,生成了一个表格,方便大家观赏。

### 技能表

|项目|语言|简介|
|:-:|:-:|:-:|:-:|
|[translation-project](https://www.github.com/jobbole/translation-project)|translationproject|伯乐在线翻译组|
|[awesome-go-cn](https://www.github.com/jobbole/awesome-go-cn)|go|Go 资源大全中文版, 内容包括:Web框架、模板引擎、表单、身份认证、数据库、ORM框架、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析、教程和(电子)书等。|
|[awesome-cpp-cn](https://www.github.com/jobbole/awesome-cpp-cn)|cpp|C++ 资源大全中文版,标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等|
|[translation-playground](https://www.github.com/jobbole ... ground)|translationplayground|经典编程书籍大全,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试等|
|[awesome-programming-books](https://www.github.com/jobbole ... -books)|programming|PHP资源大全中文版,库、框架、模板、安全、代码分析、日志、第三方库、配置工具、Web 工具等|
|[awesome-php-cn](https://www.github.com/jobbole/awesome-php-cn)|php|Python资源大全中文版,包括:Web框架、网络爬虫、模板引擎、数据库、数据可视化、图片处理等,由伯乐在线持续更新。|
|[awesome-python-cn](https://www.github.com/jobbole/awesome-python-cn)|python|JavaScript 资源大全中文版,内容包括:包管理器、加载器、测试框架、运行器、QA、MVC框架和库、模板引擎等|
|[awesome-javascript-cn](https://www.github.com/jobbole ... ipt-cn)|javascript|Java资源大全中文版,包括开发库、开发工具、网站、博客、微信、微博等,由伯乐在线持续更新。|
|[awesome-java-cn](https://www.github.com/jobbole/awesome-java-cn)|java|DotNet 资源大全中文版,内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等。|
|[awesome-dotnet-cn](https://www.github.com/jobbole/awesome-dotnet-cn)|dotnet|CSS 资源大全中文版,内容包括:CSS预处理器、框架、CSS结构、代码风格指南、命名习惯等等|
|[awesome-css-cn](https://www.github.com/jobbole/awesome-css-cn)|css|系统管理员资源大全中文版,备份/克隆软件、云计算/云存储、协作软件、配置管理、日志管理、监控、项目管理等|
|[awesome-sysadmin-cn](https://www.github.com/jobbole/awesome-sysadmin-cn)|sysadmin|Android 资源大全中文版,包括:图表、游戏开发、GUI、崩溃检测、调试工具等,由伯乐在线持续更新。|
|[awesome-android-cn](https://www.github.com/jobbole/awesome-android-cn)|android|C 资源大全中文版,包括了:构建系统、编译器、数据库、加密、初中高的教程/指南、书籍、库等。|
|[awesome-c-cn](https://www.github.com/jobbole/awesome-c-cn)|c|机器学习资源大全中文版,包括机器学习领域的框架、库以及软件|
|[awesome-machine-learning-cn](https://www.github.com/jobbole ... ing-cn)|machinelearning|MySQL 资源大全中文版,分析工具、备份、性能测试、配置、部署、GUI 等|
|[awesome-mysql-cn](https://www.github.com/jobbole/awesome-mysql-cn)|mysql|iOS 资源大全中文版,内容包括:框架、组件、测试、Apple Store、SDK、XCode、网站、书籍等|
|[awesome-ios-cn](https://www.github.com/jobbole/awesome-ios-cn)|ios|OptiKey Wiki [ 简体中文翻译]|
|[OptiKeyWiki-ZH](https://www.github.com/jobbole/OptiKeyWiki-ZH)|OptiKeyWikiZH|2015 年在微信热传的 100+ 篇经典技术文章|
|[awesome-wechat-dev-posts-2015](https://www.github.com/jobbole ... s-2015)|wechatdevposts2015|设计师资源大全,包含:ICON图标、Logo设计、PhotoShop插件、交互设计工具、流程图、线框图/原型图、设计博客等|
|[ProgrammingProjectList](https://www.github.com/jobbole ... ctList)|ProgrammingProjectList|如果有人让你推荐 Python 技术书,请让他看这个列表|
|[awesome-design-cn](https://www.github.com/jobbole/awesome-design-cn)|design|如果有人让你推荐前端技术书,请让他看这个列表|
|[awesome-python-books](https://www.github.com/jobbole/awesome-python-books)|python|前端技能栈 - 前端开发入门、进阶的参考指南|
|[awesome-web-dev-books](https://www.github.com/jobbole ... -books)|webdev|前端开发者都应知道的 jQuery 小技巧|
|[web-skill-set](https://www.github.com/jobbole/web-skill-set)|webskillset| |
|[jquery-tips-everyone-should-know](https://www.github.com/jobbole ... d-know)|jquerytipseveryoneshouldknow| |


### php代码实现抓取

```
composer require guzzle/guzzle
```

```php

require_once __DIR__ . '/../vendor/autoload.php';

$client = new \GuzzleHttp\Client([
'verify' => false,
]);
$req = $client->get('https://github.com/jobbole');
$content = $req->getBody()->getContents();

$data = [];
if (preg_match_all('#

[^>]+href="([^"]+)"[^>]+>([^<]+)#ism', $content, $match)) {
foreach ($match[1] as $key => $val) {
$data[$key]['url'] = $val;
$data[$key]['name'] = trim($match[2][$key]);
$data[$key]['language'] = preg_replace('#(awesome|cn|-|books|-everyone-should-know|jobbole|/)#', '', $val);
}
}

if (preg_match_all('#itemprop="description">([^<]+)#', $content, $match)) {
foreach ($match[1] as $key => $val) {
$data[$key]['intro'] = trim($val);
}
}

echo '|项目|语言|简介|', PHP_EOL;
echo '|:-:|:-:|:-:|:-:|', PHP_EOL;
foreach ($data as $key => $item) {
$link = '[' . $item['name'] . '](https://www.github.com' . $item['url'] . ')';
$values = [
'',
$link,
$item['language'],
$item['intro'] ?? '',
'',
];

echo implode('|', $values), PHP_EOL;
}
```

### 相关参考

1. [伯乐在线github](https://github.com/jobbole/)
2. [guzzle中文文档](http://guzzle-cn.readthedocs.io/zh_CN/latest/)
3. [guzzle官方文档](http://docs.guzzlephp.org/en/stable/)

Error: Couldn't find preset "es2015" relative to directory "F:\\"

回复

网站管理员 回复了问题 • 1 人关注 • 1 个回复 • 571 次浏览 • 2018-01-19 00:50 • 来自相关话题

【错误】vue.js vue-router loading chunk error

回复

网站管理员 发起了问题 • 1 人关注 • 0 个回复 • 3237 次浏览 • 2017-12-22 14:20 • 来自相关话题

400W数据库数据去重

网站管理员 发表了文章 • 0 个评论 • 857 次浏览 • 2017-07-22 21:08 • 来自相关话题

数据量

mysql> select count(*) from zyads_integral ;
+----------+
| count(*) |
+----------+
| 4130473 |
+----------+
1 row in set (0.01 sec)
数据表结构

mysql> desc zyads_integral;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| hash | text | YES | | NULL | |
| sha1 | text | NO | | NULL | |
| name | text | NO | | NULL | |
| index | text | YES | | NULL | |
| size | text | YES | | NULL | |
+-------+---------+------+-----+---------+----------------+
6 rows in set (0.01 sec)
样例数据

mysql> select * from zyads_integral limit 1\G
*************************** 1. row ***************************
id: 6721212
hash: 0FA565EEFA9E688B1F87640815EE090C7326725D
sha1: 8c907b045bb7905cf2a63f0b1208eeb3bca857d6
name: 【无效链接】xxxxxx.html
index: 107
size: 78110108
1 row in set (0.01 sec)
重复数据量

mysql> select id, sha1, count(*) from zyads_integral group by sha1 limit 10;
+---------+------------------------------------------+----------+
| id | sha1 | count(*) |
+---------+------------------------------------------+----------+
| 7696 | | 1 |
| 5137851 | 0000000000000000000000000000000005325911 | 2 |
| 5363699 | 00000000000000000000000000000000097ecf88 | 5 |
| 4826139 | 000000000000000000000000000000000fd81983 | 1 |
| 6250586 | 000000000000000000000000000000001b41f909 | 1 |
| 5597063 | 000000000000000000000000000000001d385b7c | 2 |
| 5281295 | 000000000000000000000000000000002a91e078 | 2 |
| 6331972 | 000000000000000000000000000000003488380d | 2 |
| 4774906 | 00000000000000000000000000000000397db43d | 1 |
| 4550736 | 00000000000000000000000000000000494ec71f | 1 |
+---------+------------------------------------------+----------+
10 rows in set (24.71 sec)

mysql> select count(*) from zyads_integral where sha1= '0000000000000000000000000000000005325911';
+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 row in set (1.03 sec)

mysql> select id, count(*) from zyads_integral group by sha1 having count(*) > 1;
+---------+----------+
| id | count(*) |
+---------+----------+
| 5137851 | 2 |
| 5363699 | 5 |
| 5597063 | 2 |
| 5281295 | 2 |
...
| 4712249 | 6 |
| 1581236 | 3 |
| 5126827 | 2 |
| 1872277 | 7 |
+---------+----------+
836343 rows in set (33.77 sec)
mysql> select id from zyads_integral group by sha1 having count(*) >= 1;
+---------+
| id |
+---------+
| 7696 |
| 5137851 |
| 5363699 |
| 4826139 |
| 6250586 |
...
| 5126827 |
| 570573 |
| 1872277 |
| 4514446 |
+---------+
2466076 rows in set (3 min 36.80 sec)

mysql> delete from zyads_integral where id in (select a.id from (select id from zyads_integral group by sha1 having count(*) > 1) a);
CREATE TABLE `zyads_integral_tmp` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`hash` varchar(100),
`sha1` varchar(100) NOT NULL,
`name` varchar(1000) NOT NULL,
`index` varchar(10),
`size` varchar(10),
UNIQUE KEY `sha1` (`sha1`),
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6756155 DEFAULT CHARSET=gbk

INSERT INTO zyads_integral_tmp (`hash`,`sha1`,`name`,`index`,`size`) SELECT `hash`,`sha1`,`name`,`index`,`size` from zyads_integral group by sha1 having count(*)>=1;

mysql> rename zyads_integral zyads_integral_tmp_1
-> ; 查看全部
数据量

mysql> select count(*) from zyads_integral ;
+----------+
| count(*) |
+----------+
| 4130473 |
+----------+
1 row in set (0.01 sec)
数据表结构

mysql> desc zyads_integral;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| hash | text | YES | | NULL | |
| sha1 | text | NO | | NULL | |
| name | text | NO | | NULL | |
| index | text | YES | | NULL | |
| size | text | YES | | NULL | |
+-------+---------+------+-----+---------+----------------+
6 rows in set (0.01 sec)
样例数据

mysql> select * from zyads_integral limit 1\G
*************************** 1. row ***************************
id: 6721212
hash: 0FA565EEFA9E688B1F87640815EE090C7326725D
sha1: 8c907b045bb7905cf2a63f0b1208eeb3bca857d6
name: 【无效链接】xxxxxx.html
index: 107
size: 78110108
1 row in set (0.01 sec)
重复数据量

mysql> select id, sha1, count(*) from zyads_integral group by sha1 limit 10;
+---------+------------------------------------------+----------+
| id | sha1 | count(*) |
+---------+------------------------------------------+----------+
| 7696 | | 1 |
| 5137851 | 0000000000000000000000000000000005325911 | 2 |
| 5363699 | 00000000000000000000000000000000097ecf88 | 5 |
| 4826139 | 000000000000000000000000000000000fd81983 | 1 |
| 6250586 | 000000000000000000000000000000001b41f909 | 1 |
| 5597063 | 000000000000000000000000000000001d385b7c | 2 |
| 5281295 | 000000000000000000000000000000002a91e078 | 2 |
| 6331972 | 000000000000000000000000000000003488380d | 2 |
| 4774906 | 00000000000000000000000000000000397db43d | 1 |
| 4550736 | 00000000000000000000000000000000494ec71f | 1 |
+---------+------------------------------------------+----------+
10 rows in set (24.71 sec)

mysql> select count(*) from zyads_integral where sha1= '0000000000000000000000000000000005325911';
+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 row in set (1.03 sec)

mysql> select id, count(*) from zyads_integral group by sha1 having count(*) > 1;
+---------+----------+
| id | count(*) |
+---------+----------+
| 5137851 | 2 |
| 5363699 | 5 |
| 5597063 | 2 |
| 5281295 | 2 |
...
| 4712249 | 6 |
| 1581236 | 3 |
| 5126827 | 2 |
| 1872277 | 7 |
+---------+----------+
836343 rows in set (33.77 sec)
mysql> select id from zyads_integral group by sha1 having count(*) >= 1;
+---------+
| id |
+---------+
| 7696 |
| 5137851 |
| 5363699 |
| 4826139 |
| 6250586 |
...
| 5126827 |
| 570573 |
| 1872277 |
| 4514446 |
+---------+
2466076 rows in set (3 min 36.80 sec)

mysql> delete from zyads_integral where id in (select a.id from (select id from zyads_integral group by sha1 having count(*) > 1) a);
CREATE TABLE `zyads_integral_tmp` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`hash` varchar(100),
`sha1` varchar(100) NOT NULL,
`name` varchar(1000) NOT NULL,
`index` varchar(10),
`size` varchar(10),
UNIQUE KEY `sha1` (`sha1`),
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6756155 DEFAULT CHARSET=gbk

INSERT INTO zyads_integral_tmp (`hash`,`sha1`,`name`,`index`,`size`) SELECT `hash`,`sha1`,`name`,`index`,`size` from zyads_integral group by sha1 having count(*)>=1;

mysql> rename zyads_integral zyads_integral_tmp_1
-> ;

简单验证码测试 tesseract

网站管理员 发表了文章 • 0 个评论 • 460 次浏览 • 2017-07-22 21:06 • 来自相关话题

<?php
/**
* Created by unkown ide ps.
* User: phantom
* Date Time: 3/30/17 12:47 PM
*/
$ttt = time();
$a = `
curl http://wenshu.court.gov.cn/User/ValidateCode?t={$ttt} -o a.png -c /tmp/cookie.txt
tesseract a.png /tmp/result -l eng
`;

$result = `cat /tmp/result.txt`;

var_dump($result);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://wenshu.court.gov.cn/Content/CheckVisitCode');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookie.txt');
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'ValidateCode' => (int)$result,
));

$ret = curl_exec($ch);
curl_close($ch);
var_dump($ret);
if ($ret == 1) {
var_dump('=================== verify success ==========================');
} else {
var_dump('=================== verify failed ==========================');
} 查看全部
<?php
/**
* Created by unkown ide ps.
* User: phantom
* Date Time: 3/30/17 12:47 PM
*/
$ttt = time();
$a = `
curl http://wenshu.court.gov.cn/User/ValidateCode?t={$ttt} -o a.png -c /tmp/cookie.txt
tesseract a.png /tmp/result -l eng
`;

$result = `cat /tmp/result.txt`;

var_dump($result);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://wenshu.court.gov.cn/Content/CheckVisitCode');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookie.txt');
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'ValidateCode' => (int)$result,
));

$ret = curl_exec($ch);
curl_close($ch);
var_dump($ret);
if ($ret == 1) {
var_dump('=================== verify success ==========================');
} else {
var_dump('=================== verify failed ==========================');
}

PHP 迭代器(LimitIterator)

网站管理员 发表了文章 • 0 个评论 • 668 次浏览 • 2017-07-22 21:04 • 来自相关话题

 分页
<?php

$fruits = new ArrayIterator(array(
'apple',
'banana',
'cherry',
'damson',
'elderberry'
));

// Loop over first three fruits only
$step = 2;
$count = count($fruits) / $step;
for ($i = 0; $i < $count; $i++) {
foreach (new LimitIterator($fruits, $i*$step, $step) as $fruit) {
var_dump($fruit);
}
var_dump('=======================================');
}

string(5) "apple"
string(6) "banana"
string(39) "======================================="
string(6) "cherry"
string(6) "damson"
string(39) "======================================="
string(10) "elderberry"
string(39) "======================================="目录迭代
<?php
$path = realpath('../auto');
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach ($objects as $name => $object) {
echo"$name\n";
}正则替换迭代器
 
<?php

$a = new ArrayIterator(array('test1', 'test2', 'test3'));
$i = new RegexIterator($a, '/^(test)(\d+)/', RegexIterator::REPLACE);
$i->replacement = '$2:$1';
print_r(iterator_to_array($i)); 查看全部
 分页
<?php

$fruits = new ArrayIterator(array(
'apple',
'banana',
'cherry',
'damson',
'elderberry'
));

// Loop over first three fruits only
$step = 2;
$count = count($fruits) / $step;
for ($i = 0; $i < $count; $i++) {
foreach (new LimitIterator($fruits, $i*$step, $step) as $fruit) {
var_dump($fruit);
}
var_dump('=======================================');
}

string(5) "apple"
string(6) "banana"
string(39) "======================================="
string(6) "cherry"
string(6) "damson"
string(39) "======================================="
string(10) "elderberry"
string(39) "======================================="
目录迭代
<?php
$path = realpath('../auto');
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach ($objects as $name => $object) {
echo"$name\n";
}
正则替换迭代器
 
<?php

$a = new ArrayIterator(array('test1', 'test2', 'test3'));
$i = new RegexIterator($a, '/^(test)(\d+)/', RegexIterator::REPLACE);
$i->replacement = '$2:$1';
print_r(iterator_to_array($i));

rsync+inotify实现多服务器文件共享

网站管理员 发表了文章 • 0 个评论 • 424 次浏览 • 2017-07-22 21:00 • 来自相关话题

服务端

rsyncd.conf

##rsyncd.conf start##
#工作中指定用户(需要指定用户)
uid = root
gid = root
#相当于黑洞.出错定位
use chroot = no
#有多少个客户端同时传文件
max connections = 200
#超时时间
timeout = 300
#进程号文件
pid file = /var/run/rsyncd.pid
#日志文件
lock file = /var/run/rsync.lock
#日志文件
log file = /var/log/rsyncd.log
#模块开始
#这个模块对应的是推送目录
#模块名称随便起
[backup]
#需要同步的目录
path = /backup/
#表示出现错误忽略错误
ignore errors
#表示网络权限可写(本地控制真正可写)
read only = false
#这里设置IP或让不让同步
list = false
#指定允许的网段
hosts allow = 123.125.5.30/24
#拒绝链接的地址,一下表示没有拒绝的链接。
hosts deny = 0.0.0.0/32
#不要动的东西(默认情况)
#虚拟用户
auth users = root
#虚拟用户的密码文件
secrets file = /etc/rsync.password
#配置文件的结尾
#rsync_config_______________end
服务端密码/etc/rsync.password

[root@cloud backup]# cat /etc/rsync.password
root:a1755b20c452
[root@cloud backup]# chmod 600 /etc/rsync.password
启动服务端监听

/usr/bin/rsync -c /etc/rsyncd.conf --daemon
客户端

环境需求

rsync + inotify
apt-get install inotify-tools
apt-get install rsync
监听脚本

#!/usr/bin/env bash

host=test.ydl.com
src=/backup/ ## 需要备份的目录
des=backup ## 远程模块
user=root
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files; do
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/tmp/rsync.passwd $src $user@$host::$des
echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done
密码文件

root@debian:/mnt# cat /tmp/rsync.passwd
a1755b20c452
测试

root@debian:/backup# touch ab > /backup/a

# 日志文件返回结果
sending incremental file list
a
5 100% 0.00kB/s 0:00:00 (xfer#1, to-check=1/4)

sent 111 bytes received 27 bytes 276.00 bytes/sec
total size is 5 speedup is 0.04
服务器自启动 查看全部
服务端

rsyncd.conf

##rsyncd.conf start##
#工作中指定用户(需要指定用户)
uid = root
gid = root
#相当于黑洞.出错定位
use chroot = no
#有多少个客户端同时传文件
max connections = 200
#超时时间
timeout = 300
#进程号文件
pid file = /var/run/rsyncd.pid
#日志文件
lock file = /var/run/rsync.lock
#日志文件
log file = /var/log/rsyncd.log
#模块开始
#这个模块对应的是推送目录
#模块名称随便起
[backup]
#需要同步的目录
path = /backup/
#表示出现错误忽略错误
ignore errors
#表示网络权限可写(本地控制真正可写)
read only = false
#这里设置IP或让不让同步
list = false
#指定允许的网段
hosts allow = 123.125.5.30/24
#拒绝链接的地址,一下表示没有拒绝的链接。
hosts deny = 0.0.0.0/32
#不要动的东西(默认情况)
#虚拟用户
auth users = root
#虚拟用户的密码文件
secrets file = /etc/rsync.password
#配置文件的结尾
#rsync_config_______________end
服务端密码/etc/rsync.password

[root@cloud backup]# cat /etc/rsync.password
root:a1755b20c452
[root@cloud backup]# chmod 600 /etc/rsync.password
启动服务端监听

/usr/bin/rsync -c /etc/rsyncd.conf --daemon
客户端

环境需求

rsync + inotify
apt-get install inotify-tools
apt-get install rsync
监听脚本

#!/usr/bin/env bash

host=test.ydl.com
src=/backup/ ## 需要备份的目录
des=backup ## 远程模块
user=root
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files; do
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/tmp/rsync.passwd $src $user@$host::$des
echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done
密码文件

root@debian:/mnt# cat /tmp/rsync.passwd
a1755b20c452
测试

root@debian:/backup# touch ab > /backup/a

# 日志文件返回结果
sending incremental file list
a
5 100% 0.00kB/s 0:00:00 (xfer#1, to-check=1/4)

sent 111 bytes received 27 bytes 276.00 bytes/sec
total size is 5 speedup is 0.04
服务器自启动

php 代码

网站管理员 发表了文章 • 0 个评论 • 420 次浏览 • 2017-07-22 19:58 • 来自相关话题

<?php

function check_username_action()
{
if ($this->model('account')->check_username_char($_POST['username']) OR $this->model('account')->check_username_sensitive_words($_POST['username']))
{
H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('用户名不符合规则')));
}

if ($this->model('account')->check_username($_POST['username']))
{
H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('用户名已被注册')));
}

H::ajax_json_output(AWS_APP::RSM(null, 1, null));
} 查看全部
<?php

function check_username_action()
{
if ($this->model('account')->check_username_char($_POST['username']) OR $this->model('account')->check_username_sensitive_words($_POST['username']))
{
H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('用户名不符合规则')));
}

if ($this->model('account')->check_username($_POST['username']))
{
H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('用户名已被注册')));
}

H::ajax_json_output(AWS_APP::RSM(null, 1, null));
}

简单的网页通知

网站管理员 发表了文章 • 0 个评论 • 317 次浏览 • 2017-07-22 17:47 • 来自相关话题

友情连接
 
https://xcx.sourcedev.cc/article/page/1