CentOS7 安装 PostgreSQL

1.首先安装PostgreSQL的rpm

wget https://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

rpm -ivh pgdg-redhat-repo-latest.noarch.rpm

2. 安装PostgreSQL服务器

yum install postgresql11-server postgresql11-contrib

  • 11为安装11.x版 10为安装10.x版 96为安装9.6版

初始化数据库

/usr/pgsql-11/bin/postgresql-11-setup initdb

配置文件目录:/var/lib/pgsql/data

启动PostgreSQL

systemctl start postgresql-11

修改postgres用户密码,切换到postgres用户

sudo passwd postgres
su postgres

然后使用psql工具登录数据库,列出当前的数据库,命令分别是 psql 和 \l 

Centos7 挂载NFS目录

yum install nfs-utils

安装NFS工具集

showmount -e 192.168.248.208

检查 NFS 服务器端是否有目录共享:showmount -e nfs服务器的IP

cd /home && mkdir /nfs

mount -t nfs 192.168.248.208:/volume1/nfs /home/nfs

df -h 查看是否挂载成功。

设置开机自动挂载

vi /etc/fstab

添加:    192.168.248.208:/volume1/nfs /home/nfs nfs  defaults 0 0

关闭挂载:umount /usr/shareNFS nfs

windows挂载: mount  192.111.134.1:/usr/nfsShare X:

centos7 install 安装mysql

CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载

# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server

成功安装之后重启mysql服务

# systemctl restart mysqld

初次安装mysql是root账户是没有密码的

设置密码的方法

# mysql -uroot
mysql> setpassword for‘root’@‘localhost’ = password('mypasswd');
mysql> exit

最全的SEO搜索命令整理

做为一名SEOER其实我们还是要多多学习一些搜引擎的知识,哪怕有的不清楚但是最起码要有个了解。今天红涛就整理了一些很多人没有用过的一些搜索引擎命令,百度高级指令与谷歌高级指令。

SEO搜索命令大全

1、双引号

把搜索词放在双引号中,代表完全匹配搜索,也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配。百度和Google 都支持这个指令。例如搜索: “SEO博客”

2、减号

减号代表搜索不包含减号后面的词的页面。使用这个指令时减号前面必须是空格,减号后面没有空格,紧跟着需要排除的词。Google 和百度都支持这个指令。例如:搜索 -引擎返回的则是包含“搜索”这个词,却不包含“引擎”这个词的结果

3、星号

星号*是常用的通配符,也可以用在搜索中。百度不支持*号搜索指令。比如在Google 中搜索:搜索*擎其中的*号代表任何文字。返回的结果就不仅包含“搜索引擎”,还包含了“搜索收擎”,“搜索巨擎”等内容。

4、inurl

inurl: 指令用于搜索查询词出现在url 中的页面。百度和Google 都支持inurl 指令。inurl 指令支持中文和英文。比如搜索:inurl:搜索引擎优化

返回的结果都是网址url 中包含“搜索引擎优化”的页面。由于关键词出现在url 中对排名有一定影响,使用inurl:搜索可以更准确地找到竞争对手。

5、inanchor

inanchor:指令返回的结果是导入链接锚文字中包含搜索词的页面。百度不支持inanchor。比如在Google 搜索 :inanchor:点击这里返回的结果页面本身并不一定包含“点击这里”这四个字,而是指向这些页面的链接锚文字中出现了“点击这里”这四个字。可以用 来找到某个关键词的竞争对收,而且这些竞争对手往往是做过SEO 的。研究竞争对手页面有哪些外部链接,就可以找到很多链接资源。

6、intitle

intitle: 指令返回的是页面title 中包含关键词的页面。Google 和百度都支持intitle 指令。使用intitle 指令找到的文件是更准确的竞争页面。如果关键词只出现在页面可见文字中,而没有出现在title 中,大部分情况是并没有针对关键词进行优化,所以也不是有力的竞争对手。

7、allintitle

allintitle:搜索返回的是页面标题中包含多组关键词的文件。例如 :allintitle:SEO 搜索引擎优化就相当于:intitle:SEO intitle:搜索引擎优化返回的是标题中中既包含“SEO”,也包含“搜索引擎优化”的页面

8、allinurl

与allintitle: 类似。allinurl:SEO 搜索引擎优化就相当于 :inurl:SEO inurl:搜索引擎优化

9、filetype

用于搜索特定文件格式。Google 和百度都支持filetype 指令。比如搜索filetype:pdf SEO返回的就是包含SEO 这个关键词的所有pdf 文件。

10、site

site:是SEO 最熟悉的高级搜索指令,用来搜索某个域名下的所有文件。

11、linkdomain

linkdomain:指令只适用于雅虎,返回的是某个域名的反向链接。雅虎的反向链接数据还比较准确,是SEO 人员研究竞争对手外部链接情况的重要工具之一。比如搜索

linkdomain:zhisg.com-site:zhisg.com得到的就是大明seo的外部链接,因为-site:zhisg.com已经排除了点石本身的页面,也就是内部链接,剩下的就都是外部链接了。

12、related

related:指令只适用于Google,返回的结果是与某个网站有关联的页面。比如搜索

related:hzaima.com我们就可以得到Google 所认为的与大明seo有关联的其他页面。 这种关联到底指的是什么,Google 并没有明确说明,一般认为指的是有共同外部链接的网站。

百度命令收集:

Domain:用domain命令可以查找跟某一网站相关的信息。例提交“domain:url“

Filetype:限制查找文件的格式类型。目前可以查找的文件类型有.pdf/.doc/.xls/.ppt/.rtf 用法:搜索关键字 + filetype:ppt

inurl:限定查询匹配只搜索URL链接。 inurl:搜索关键字。(查找网站目录收录不错)

link:网站外链接查询。Link:www.zhisg.com

Site:网站整站搜索引擎收录查询。例:Site:www.zhisg.com -全站收录检查”“seo入门 site:www.zhisg.com -检查“某关键词””

intitle:搜索网页标题中含有的关键词,例:想搜索标题中含有“SEO入门”的内容 intitle:SEO入门

其它铺助搜索命令:

利用-来限定关键词一定不要出现在结果中。 例如:键入seo-网站,会找出包含seo但除了网站的网站。

利用*代替所有的字母,模糊检索那关键词或者是不能确定的关键词。 例如:键入”爱*”后的会查询到包含爱字的相关内容。

利用()可以把多个关键词划分为一组,并进行优先查询。 例如:键入”(seo+网络)”来搜索包含”seo”与”网络”的信息。

利用and 表示前后两个关键词是”与”的逻辑关系。 例如输入关键词:聊城 and 江北水城 会找出将包含聊城和江北水城有关的网站。

利用or(|)表示前后两个词是”或”的逻辑关系。 例如输入关键词:聊城 or 出口,会找出将包含聊城 或者出口 的网页。

以上信息在最实用的百度搜索引擎中均可使用。 其中:  wd代表查询关键词  cl=3代表网页搜索  ie=gb2312代表查询输入关键词的编码  pn代表显示搜索结果的页数  rn代表页 面显示搜索结果的数量  两个指定关键字之间允许出现的关键词数。

百度基本搜索技巧

百度搜索引擎简单方便。仅需输入查询内容并敲一下回车键(Enter),即可得到相关资料。或者输入查询内容后,用鼠标点击“百度搜索”按钮,也可得到相关资料。

输入多个词语搜索

输入多个词语搜索(不同字词之间用一个空格隔开),可以获得更精确的搜索结果。

例如:想了解北京暂住证相关信息,在搜索框中输入

获得的搜索效果会比输入 [北京暂住证] 得到的结果更好。

在百度查询时不需要使用符号”AND”或”+”,百度会在多个以空格隔开的词语之间自动添加”+”。百度提供符合您全部查询条件的资料,并把最相关的网页排在前列。

减除无关资料

有时候,排除含有某些词语的资料有利于缩小查询范围。百度支持“-”功能,用于有目的地删除某些无关网页,但减号之前必须留一空格。

并行搜索

使用“A|B”来搜索“或者包含词语A,或者包含词语B”的网页。

例如:您要查询“图片”或“写真”相关资料,无须分两次查询,只要输入 [图片|写真] 搜索即可。 百度会提供跟“|”前后任何字词相关的资料,并把最相关的网页排在前列。

相关检索

如果您无法确定输入什么词语才能找到满意的资料,可以试用百度相关检索。

您可以先输入一个简单词语搜索,然后,百度搜索引擎会为您提供“其它用户搜索过的相关搜索词语”作参考。您点击其中一个相关搜索词,都新版。百度和网页作者无关,不对网页的内容负责。

百度高级搜索命令

1、index命令

在关键词输入框中输入index of mp3,选择回车搜索,得到了一些网页,不要以为这是一些普通的页面,其实它们是一些mp3网站的资源列表,点击打开它来看看,怎么样?是不是所有资源一收眼底了?

2、Intitle命令-表示后接的词限制在网页标题范围内。

例如,找明星的个人资料页。一般来说,明星资料页的标题,通常是明星的名字,而在页面上,会有“姓名”、“身高”等词语出现。比如找林青霞的个人资料,就 可以用“林青霞 姓名 身高”来查询。而由于明星的名字一般在网页标题中出现,因此,更精确的查询方式,可以是“姓名 身高 intitle:章宝龙”。

3、site命令-限制在某一网站内搜索。

site语法把搜索范围局限在这些网站内,以提高搜索效率。

例:网际快车 site:skycn.com

4、filetype命令对搜索对象的文件类型做限制,冒号后是文档格式,如PDF、DOC、XLS等。

很多情况下,我们需要有权威性的,信息量大的专业报告或者论文。比如,我们需要了解中国互联网状况,就需要找一个全面的评估报告,而不是某某记者的一篇文 章;我们需要对某个学术问题进行深入研究,就需要找这方面的专业论文。找这类资源,除了构建合适的关键词之外,我们还需要了解一点,那就是:重要文档在互 联网上存在的方式,往往不是网页格式,而是Office文档或者PDF文档。Office文档我们都熟悉,PDF文档也许有的人并不清楚。PDF文档是 Adobe公司开发的一种图文混排电子文档格式,能在不同平台上浏览,是电子出版的标准格式之一。多数上市公司的年报,就是用PDF做的。很多公司的产品 手册,也以PDF格式放在网上。

例:霍金 黑洞 filetype:pdf

5、inur命令-是限定在url中搜索。URL,全称Uniform Resource Locator,中文译为“统一资源定位器”,就是地址栏里的内容。

使用格式是:“inurl:xxx”、“inurl:xxx 关键词”、“关键词 inurl:xxx” (XXX可以是任何字符)

1)、inurl:xxx 作用是命令搜索引擎查找url中包含xxx的网页。 例子:inurl:news

2)、“inurl:xxx 关键词”或“关键词 inurl:xxx” 两者意义一样:要搜索引擎查找满足下面两个要求的网页 1. url中包括xxx 2.网页中含有“关键词” 例子:cnkikw inurl:sanzhiyu.php ,网页正文包含“cnkikw”,url中有“sanzhiyu.php”

通常情况,任何网站的url都不是随意设置的,都经过一番过虑,有一定用意的。很多地方,url链接和网页的内容有着密切的相关。所以,可以利用这种相关性,来缩小范围,快速准确地找到所需信息。

Google高级搜索命令

以下是目前所有的Google搜索命令语法,它不同于Google的帮助文档,因为这里介绍了几个Google不推荐使用的命令语法。大多数的 Google搜索命令语法有它特有的使用格式,希望大家能正确使用。我用不同颜色标注了不同的语法命令,绿色的较为常用的命令,黄色的是不常用但却非常有 用的命令,蓝色是Google不推荐使用的命令。

allinanchor: anchor是一处说明性的文字,它标注说明了这个链接可能跳转到其它的网页或跳转到当前网页的不同地方。当我们用allinanchor提交查询的时 候,Google会限制搜索结果必须是那些在anchor文字里包含了我们所有查询关键词的网页。例[ allinanchor: best museums Sydney ] ,提交这个查询,Google仅仅会返回在网页anchor说明文字里边包含了关键词”best” “museums” 和”Sydney”的网面。

allintext: 当我们用allintext提交查询的时候,Google会限制搜索结果仅仅是在网页正文里边包含了我们所有查询关键词的网页。例[allintext: travel packing list],提交这个查询,Google仅仅会返回在一个网页包含了三个关键词”travel” “packing”和”list”的网页。

allintitle: 当我们用allintitle提交查询的时候,Google会限制搜索结果仅是那些在网页标题里边包含了我们所有查询关键词的网页。例 [allintitle: detect plagiarism],提交这个查询,Google仅会返回在网页标题里边包含了”detect”和”plagiarism”这两个关键词的网页。

allinurl: 当我们用allinurl提交查询的时候,Google会限制搜索结果仅是那些在URL(网址)里边包含了我们所有查询关键词的网页。例 [allinurl: google faq],提交这个查询,Google仅会返回在URL里边包含了关键词”google”和”faq”的网页,象www.google.com/help /faq.html等的网页。

author: 当我们用author进行查询的时候,Google会限制返回结果仅仅是那些在Google论坛里边,包含了特定作者的新闻文章。在这里,作者名可以是全 名,也可以是一部分或邮件地址。例[children author:john author:doe]或[children author:doe@someaddress.com]返回结果将是作者John Doe 或是 doe@someaddress.com写的,关于包含关键词children的文章。

bphonebook: 用bphonebook进行查询的时候,返回结果将是那些商务电话资料。

cache: 提交cache:url ,Google会显示当前网页的快照信息,从而替换网页的当前信息。例[cache:com],提交这个查询,Google会返回所有抓取的关于 [url]url]的网页快照信息。在显示的网页快照信息里边,Google会高亮显示查询关键词。(在cache:和URL之间不能有空格)

datarange: 当我们使用datarange进行查询的时候,Google会将查询结果限制在一个特定的时间段内,这个时间相对于网站来说,是按网站被google收录 的时间算的。例 ”Geri Halliwell” “Spice Girls” daterange:2450958-2450968 。这里的时间日期格式是按天文学的儒略日。(这个搜索语法Google并不推荐使用,因为它会返回 一些莫名其妙的东西)

define: 当我们用define进行查询的时候,Google会返回包含查询关键词定义的网面。例[define: blog],这个查询将会返回Blog的定义。ext: 这是一个没有证实的语法,可以用于filetype:查找扩散名为ext的文件。

filetype: 当我们在查询里边包含filetype:扩展名的时候,Google会限制查询结果仅返回特定文件类型的网页。例[资产评估  filetype:pdf],这个查询将会返回所有文件类型为pdf的资产评估信息。其它可用的特定文件类型格式查询还有doc ,txt,ppt,xls.rtf,swf,ps等。

group: 当我们用group查询的时候,Google会限制我们的论坛查询结果仅是某几个固定的论坛组或是某些特定主题组的新闻文章。例[sleep group:misc.kids.moderated],提交这个查询,Google仅会返回在用户组misc.kids.moderated里边包含了 查询关键字”sleep”的文章。

id: 又是一个没有证实的语法,效果很一般。

inanchor: 当我们用inanchor提交查询的时候,Google会限制结果是那些在网页anchor链接里边包含了查询关键词的网页。例[restaurants inanchor:gourmet],提交这个查询,Google会查询那些在anchor信息里包含了关键词”restaurants”和关键 词”gourmet”的网页。

info: 提交info:url,将会显示需要查询网站的一些信息。

其实很多命令并一定都能用得着,大家根据自己的兴趣爱好可以适当的掌握。以上是红涛整理的一些百度与谷歌的搜索命令。

如何布局您的PC站和移动站,并表达两者之间内容的对应关系

目前较流量的PC站与移动站配置方式有三种,百度站在搜索引擎角度将这三种分别称为跳转适配、代码适配和自适应,以下为这三种配置方式的名词解释及异同对比。

1,跳转适配:该方法会利用单独的网址向每种设备提供不同的代码。这种配置会尝试检测用户所使用的设备或ua,然后使用 HTTP 重定向和 Vary HTTP标头重定向到相应的页面。

2,代码适配:该方法使用相同的网址(不考虑用户所使用的设备),但会根据服务器对用户所用浏览器的了解(ua),针对不同设备类型生成不同版本的HTML

3,自适应:通过同一网址提供相同 HTML 代码的网站设计方法。该方法不考虑用户所使用的设备(pc、平板电脑、移动设备),但可以根据屏幕尺寸以不同方式呈现(即适应)显示屏。

PC、移动网址是否一致 PC、移动网页代码是否一致
跳转适配
代码适配
自适应

1,跳转适配

在pc版网页(http://www.example.com/page-1) 上,添加:
  

而在移动版网页(http://m.example.com/page-1) 上,所需的注释应为:
   

2,代码适配

并且在pc的响应的head中添加
  
  在移动的响应的包头中添加
  
  

3,自适应

自适应设计有其一般原则:在head添加以下代码并且使用元素处理自适应图片:
  

自适应页面还应该在head中标识:
  
  表示页面同时适合在移动设备和PC上进行浏览。

 

关于移动配置,百度不建议的做法

  1,单一域名下请使用同一种配置方式(跳转适配、代码适配、自适应),例如,不要把移动站的页面作为pc站网址中的一个子目录来配置。
  2,如果使用跳转适配的方式,请不要使用JS对ua进行适配跳转。这种方式存在两个缺点:
a) 对用户:会加大由重定向的客户端造成的延迟;这是因为客户端需要先下载网页,接着解析并执行 JavaScript,然后才能触发重定向。301或302则不会有这个延迟。
b) 对搜索:爬虫也需要使用支持JS渲染的爬虫,才能发现此重定向。

在RHEL/CentOS 6.3/5.6和Fedora 17/12上安装APC(可选的PHP缓存)

在RHEL/CentOS 6.3/5.6和Fedora 17/12上安装APC

APC(可选的PHP缓存)是一个免费,开源的PHP代码缓存。这个模块的主要目的是提供一个健壮的框架来缓存和优化PHP代码。

在RHEL/CentOS 6.3/5.6和Fedora 17/12上安装APC

在Linux上安装和开启PHP APC

该说明文档描述了如何在RHEL 6.3/6.2/6.1/6/5.8/5.6,CentOS 6.3/6.2/6.1/6/5.8/5.6Fedora 17,16,15,14,13,12上使用PECL命令从代码仓库中下载,安装以及开启APC

安装APC的依赖包

首先,我们需要安装所需的软件包,pecl,phpize和apxs命令,并使用YUM包管理工具来安装APC。

yum install php-pear php-devel httpd-devel pcre-devel gcc make

使用PECL安装APC

现在我们已经安装了所有必须的软件包以用来安装APC。接下来我们使用PECL命令来安装它。安装过程中请选择默认的设置值。

pecl install apc

输出如下:
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading APC-3.1.9.tgz ...
Starting to download APC-3.1.9.tgz (155,540 bytes)
.................................done: 155,540 bytes
54 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
config.m4:180: warning: AC_CACHE_VAL(PHP_APC_GCC_ATOMICS, ...): suspicious cache-id, must contain _cv_ to be cached
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
config.m4:180: the top level
config.m4:180: warning: AC_CACHE_VAL(PHP_APC_GCC_ATOMICS, ...): suspicious cache-id, must contain _cv_ to be cached
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
config.m4:180: the top level Enable internal debugging in APC [no] : Enable per request file info about files used from the APC cache [no] : Enable spin locks (EXPERIMENTAL) [no] : Enable memory protection (EXPERIMENTAL) [no] : Enable pthread mutexes (default) [yes] : Enable pthread read/write locks (EXPERIMENTAL) [no] :

开启PHP的APC扩展模块

运行下面的命令以开启APC扩展模块在Apache配置中

echo "extension=apc.so" > /etc/php.d/apc.ini

重启Apache服务

重启Apache服务以使新的更改生效。

service httpd restart
OR
/etc/init.d/httpd restart

在RHEL/CentOS 6.3/5.6和Fedora 17/12上安装APC

开启PHP APC管理

开启APC管理面板,你需要复制下面的文件:

cp /usr/share/pear/apc.php /var/www/html/

接下来打开apc.php文件

# vi /var/www/html/apc.php

如下所示,在apc.php文件中设置用户名及密码。

defaults('ADMIN_USERNAME','apc');       // Admin Username
defaults('ADMIN_PASSWORD','Set-Password-Here');  // Admin Password - CHANGE THIS TO ENABLE!!!

在浏览器中输入如下的URL链接,你将可以使用APC的管理面板。

http://localhost/apc.php

在RHEL/CentOS 6.3/5.6和Fedora 17/12上安装APC

使用PECL升级APC

执行如下的命令即可下载并升级APC

pecl upgrade apc

使用PECL卸载APC

如果你想移除它,使用如下的命令即可从你的系统中完全移除APC。

pecl uninstall apc

win10(10240)使用初体验

因为受到WIN10的宣传,加入了win10的测试帐号计划,用自己8年前的电脑,安装并顺利完成升级至10240版本,据消息同RTM版基本一致了。

使用起来流畅度还是相当不错的,T5250 CPU + 2GB内存,可以跑出这水平,还是很满意的。看来Microsoft宣传是未来10年最好的系统,可以有点信赖。

WINDOWS一直吹的新浏览器EDGE,用起来还是不咋地,经常出现卡机现象,看来BUG还是有点多,有待改进。看来要想赶上Chrome还需努力。不过开始菜单的回归还是值得庆幸的,毕竟这经典的菜单在我心里已经养成习惯,看起来还是亲切,加上应用兼容性也比WIN8好很多。这两点也是让我一直无缘WIN8的重要原因。看来这次WIN10会受到大家的喜欢。

WIN10正式版也采用了应用商店,虽说这点严重抄袭了MacOSX,不过还应该赞一下。好东西嘛,应该学习的啦。从应用商店下载安装软件方便太多了。而且在当今每个链接后面大部份都藏着木马的时代,用应用商店下载安装软件是个相当好的体验方式。

最后也感谢Microsoft,因为我的测试,微软也大方的给赠送上正版授权!

 

win10_1 win10_2 win10_3

送给所有中国比奥巴马还忙的爸爸

第一次当选总统时,奥巴马说竞选中有一件事他很自豪,在长达21个月的选战中,他没有错过一次孩子的家长会。几天前听米歇尔演说,她谈到做总统的丈夫,至今仍每晚和女儿一起吃晚餐,耐心回答她们的问题,为她们在学校交朋友的事儿出谋划策。只因为奥巴马知道自己不可能做一辈子的总统,却是孩子一生的父亲!(送给所有中国比奥巴马还忙的爸爸)  

cURL超时设置

一般我们访问HTTP方式很多,主要是:curl, socket, file_get_contents() 等方法。
如果碰到对方服务器一直没有响应的时候,我们就悲剧了,很容易把整个服务器搞死,所以在访问http的时候也需要考虑超时的问题。

CURL 是我们常用的一种比较靠谱的访问HTTP协议接口的lib库,性能高,还有一些并发支持的功能等。

curl_setopt($ch, opt) 可以设置一些超时的设置,主要包括:
*(重要) CURLOPT_TIMEOUT 设置cURL允许执行的最长秒数。
*(重要) CURLOPT_TIMEOUT_MS 设置cURL允许执行的最长毫秒数。
(在cURL 7.16.2中被加入。从PHP 5.2.3起可使用)

CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则无限等待。
CURLOPT_CONNECTTIMEOUT_MS 尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。
(在cURL 7.16.2中被加入。从PHP 5.2.3开始可用)

CURLOPT_DNS_CACHE_TIMEOUT 设置在内存中保存DNS信息的时间,默认为120秒。

curl普通秒级超时:

$ch = curl_init();  
curl_setopt($ch, CURLOPT_URL,$url);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  
curl_setopt($ch, CURLOPT_TIMEOUT,60);   //只需要设置一个秒的数量就可以  
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);  
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);  

curl如果需要进行毫秒超时,需要增加:

curl_easy_setopt(curl, CURLOPT_NOSIGNAL,1L);  
//或者是:  
curl_setopt ( $ch,  CURLOPT_NOSIGNAL,true);//是可以支持毫秒级别超时设置的  

curl一个毫秒级超时的例子:

if(!isset($_GET['foo'])){  
        // Client  
        $ch = curl_init('http://example.com/');  
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);  
        curl_setopt($ch, CURLOPT_NOSIGNAL,1);    //注意,毫秒超时一定要设置这个  
        curl_setopt($ch, CURLOPT_TIMEOUT_MS,200);  //超时毫秒,cURL 7.16.2中被加入。从PHP 5.2.3起可使用  
        $data = curl_exec($ch);  
        $curl_errno = curl_errno($ch);  
        $curl_error = curl_error($ch);  
        curl_close($ch);  
   
        if($curl_errno >0){  
                echo "cURL Error ($curl_errno): $curl_error\n";  
        }else{  
                echo "Data received: $data\n";  
        }  
}else{  
        // Server  
        sleep(10);  
        echo "Done.";  
}  

其他一些技巧:
1. 按照经验总结是:cURL 版本 >= libcurl/7.21.0 版本,毫秒级超时是一定生效的,切记。
2. curl_multi的毫秒级超时也有问题。。单次访问是支持ms级超时的,curl_multi并行调多个会不准

验证URL字符串的正则

验证URL字符串的正则

^(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://)|(\w+\.))*(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[\d]+)?(/[\w\&%_\./-~-\W]*)?$

在PHP中的写法为:

if(preg_match("@^(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://)|(\w+\.))*(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[\d]+)?(/[\w\&%_\./-~-\W]*)?$@i", $_url))