最新发布 页面 2 Toggle Comment Threads | 键盘快捷键

  • Jason Lin 11:40 am on June 7, 2015 链接地址 | 回复
    Tags:   

    闲暇时光 

        

     
  • Jason Lin 11:13 am on June 3, 2015 链接地址 | 回复
    Tags: ,   

    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并行调多个会不准

     
  • Jason Lin 9:35 pm on May 8, 2015 链接地址 | 回复
    Tags: ,   

    验证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))
    
     
    • Jason Lin 10:37 下午 on 五月 8, 2015 链接地址 | 回复

      if(!preg_match(“@^((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://)@i”, $_url))
      判断是否有http打头

  • Jason Lin 4:27 pm on April 28, 2015 链接地址 | 回复
    Tags:   

    POST调试工具 

    实际开发工作中,很多时候需要用到POST提交值,每次都需要针对写出相对的POST环境,

    所以写出这个POST调试工具公共库,方便调试使用。

    程序运行环境需要php 及 extension=php_curl.dll

    调试时填写的内容:

    提交的网址:填写需要调试的网址

    提交的变量:分别填写变量名及变量值,可以添加多个变量,及多行(TEXT)变量

    提交执行提供了正常执行,返回原码,解析JSON,解析XML 多种操作

    可以将返回直接显示,也可以解析后直观显示

    在线运行:http://www.zhisg.com/post.php

    post调试工具下载

     
  • Jason Lin 2:19 pm on April 20, 2015 链接地址 | 回复
    Tags:   

    ROS采用NAT共享上网方式 

    大家都知道,ROS有个特别的Action:masquerade,用于共享上网,但这个方式上网率效比NAT方式慢。
    其实设置NAT共享上网也很简单,只要设置如下:
    如果是多线,只需重复设置几条,对应好Out. Interface 及To Address的IP即可。
    当然,设置完别忘了设置网关路由。

    ros_nat1ros_nat2

     
  • Jason Lin 4:58 pm on April 17, 2015 链接地址 | 回复
    Tags: ,   

    centos6.5使用yum安装mysql5.6 

    需要先导入一个repo的包。

     yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

    下面是再具体的步骤,很简单。。。。

     yum install mysql mysql-devel mysql-server mysql-utilities

    mysql_5.6.20_repo

     
  • Jason Lin 9:58 am on April 2, 2015 链接地址 | 回复
    Tags: , ,   

    CentOS 5/6 快速安裝 VPN Server (PPTP) 

    把握幾個重點即可快速完成 pptp 的 VPN Server 架設:

    • ppp – 點對點協定 (Point-to-Point Protocol)
    • pptp – 點對點通道協定 (Point-to-Point Tunneling Protocol)
    • iptables – 設定封包轉發規則

    安裝步驟

    1. 判斷 ppp 是否可用:

    $ cat /dev/ppp
    cat: /dev/ppp: No such device or address

    如果出現跟上面一樣的訊息「No such device or address」,那不用擔心,這表示 ppp 是可用的,可以正常架設 pptp。

    如果出現的是「Permission denied」,表示 ppp 是關閉的,下面的步驟就可以不用再看了。

    2. 安裝 ppp 與 iptables

    $ yum -y install ppp iptables
    $ cp -rpf /etc/sysconfig/iptables /etc/sysconfig/iptables.pptpsave
    $ cd /usr/src

    3. 請依照你的系統環境下載適合的 pptp 套件:

    # for CentOS 6.x 32bit
    $ wget http://poptop.sourceforge.net/yum/stable/rhel6/i386/pptpd-1.3.4-2.el6.i686.rpm
    # for CentOS 6.x x64
    $ wget http://poptop.sourceforge.net/yum/stable/rhel6/x86_64/pptpd-1.3.4-2.el6.x86_64.rpm
    # for CentOS 5.x 32bit
    $ wget http://poptop.sourceforge.net/yum/stable/rhel5/i386/pptpd-1.3.4-2.rhel5.i386.rpm
    # for CentOS 6.x x64
    $ wget http://poptop.sourceforge.net/yum/stable/rhel5/x86_64/pptpd-1.3.4-2.rhel5.x86_64.rpm

    上面這些載點如果失效,有可能是更新版本了,請自行前往 poptop 的網站下載,或是備用載點

    4. 安裝上一個步驟所下載的 pptp 套件:

    $ rpm -ivh pptpd-1.3.4-2.el6.i686.rpm

    5. 編輯 /etc/sysctl.conf,找到:

    net.ipv4.ip_forward = 0

    將後面的 0 改成 1

    6. 下面的指令全部給它下去:

    sysctl -p
    echo "localip 192.168.240.1" >> /etc/pptpd.conf
    echo "remoteip 192.168.240.101-200" >> /etc/pptpd.conf
    echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
    echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd
    iptables --flush POSTROUTING --table nat
    iptables --flush FORWARD
    iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
    iptables -A INPUT -p gre -j ACCEPT
    iptables -t nat -A POSTROUTING -s 192.168.240.0/24 -o eth0 -j MASQUERADE
    service iptables save
    service pptpd restart
    service iptables restart
    chkconfig pptpd on
    chkconfig iptables on

    這樣就大功告成了!!

    上面這些指令會創造一個 192.168.240.* 的網段給連上來的 vpn 用戶使用,並透過 Server 上的 eth0 轉送對外上網的封包 (你可以自行將 192.168.240eth0 改成符合你需求的設定)。

    加入 VPN 帳號

    接著我們要加入 VPN 的連線帳號。

    編輯 /etc/ppp/chap-secrets 以加入 VPN 帳號,一個帳號一行,格式為:

    帳號名稱 pptpd 密碼 *

    例如,我要新增一個帳號為「vpn」,密碼為「test123」,則只要在 /etc/ppp/chap-secrets 加入一行:

    vpn pptpd test123 *

    加入之後不用重新啟動 pptpd,你就可在 Client 端以 pptp 協定用 VPN 連線至這台 Server 了。

     

    pptpd-1.3.4-1.rhel5.1.x86_64

     
  • Jason Lin 9:12 am on March 25, 2015 链接地址 | 回复
    Tags: Apple,   

    Netatalk 3.1.7 SRPM for Fedora and CentOS 

    用CentOS 配置 TimeMaChine 服务器

    Download
    netatalk-3.1.7-0.1.fc21.src.rpm

    Netatalk 3.1.7 SRPM for Fedora and CentOS – Netatalk Wiki

    Build

    At least, “rpm-build“, “gcc” and “make” packages are needed.

    # yum install rpm-build gcc make
    

    Install the SRPM.

    $ rpm -ivh netatalk-X.X.X-XXX.XXX.src.rpm
    

    The following messages don’t have a problem.

    warning: group hat does not exist - using root
    warning: user hat does not exist - using root
    

    Build by using “rpmbuild” command.
    If “error: Failed build dependencies: zzz” is displayed, execute “yum install zzz“.

    $ cd ~/rpmbuild/SPECS/
    $ rpmbuild -bb netatalk.spec
    

    (阅读全文 …)

     
    • Jason Lin 11:02 下午 on 三月 25, 2015 链接地址 | 回复

      root登入不上,需要创建用户。

      配置afp.conf文件:

      [My Time Machine Volume]
      path = /export/timemachine
      valid users = tc
      rwlist = tc
      time machine = yes
      vol size limit = 512000

      创建用户,记得GID和UID都是50000
      [root@netatalk ~]# groupadd -g 50000 tc
      [root@netatalk ~]# useradd -u 50000 -g tc -s /usr/bin/false -d /home/tc tc
      [root@netatalk ~]# passwd tc

  • Jason Lin 5:39 pm on March 23, 2015 链接地址 | 回复
    Tags: ,   

    PHP字符串提取一段文字中的img代码 

    哈哈!”';
    echo $str;
    preg_match_all('//iUs', $str, $out);
    print_r($out);
    
    $img=$out[0][0];
    echo $img;
    ?>
    


    哈哈”';
    
    preg_match_all('/src="(.*)"/iUs', $str, $out);
    
    $img=$out[1][0];
    echo $img;
    ?>
    
     
  • Jason Lin 9:46 am on March 23, 2015 链接地址 | 回复
    Tags:   

    Win2008 添加角色错误:主题没有签名。0x800B0100(Update 无法更新)解决方法 

    0x800B0100

     

    Win2008 添加角色错误:主题没有签名。0x800B0100。
    以及Update 无法更新的解决方法:

    通过使用 DISM 或系统更新准备工具修复 Windows 损坏错误

    https://support.microsoft.com/zh-cn/kb/947821

     
  • Jason Lin 8:25 pm on October 5, 2014 链接地址 | 回复
    Tags:   

    CentOS安装VMware Tools 

    新建cdrom挂载目录
    mkdir /mnt/cdrom
    挂载光驱
    mount -t auto /dev/cdrom /mnt/cdrom这命令就是把CentOS CDROM挂载在/mnt/cdrom目录中,就可以访问里面的内容了;
    使用光驱中的文件,进行安装

    [root@CentOS6 /]# cd /mnt/cdrom
    [root@CentOS6 /]# ls -a
    [root@CentOS6 /]# cp VMwareTools-8.6.1-19175.tar.gz /tmp
    [root@CentOS6 /]# cd /tmp
    [root@CentOS6 /]# tar zxpf VMwareTools-8.6.1-19175.tar.gz
    [root@CentOS6 /]# cd vmware-tools-distrib
    [root@CentOS6 vmware-tools-distrib]# ./vmware-install.pl
    Creating a new installer database using the tar3 format.

    Installing the content of the package.

    1. 安装过程的画面,全部使用默认值,一直按 Enter 就对了

    一直到出现:
    To use the vmxnet driver, restart networking using the following commands:
    /etc/init.d/network stop
    rmmod pcnet32
    rmmod vmxnet
    depmod -a
    modprobe vmxnet
    /etc/init.d/network start

    Enjoy,

    –the VMware team

    出现以上,则基本安装完!

    5 shutdown -r now 重启

    6 重新启动计算机再次登入之后,我们就会发觉到,当我们要离开 Guest OS 的时候,不再需要按「Ctrl + Alt」了,

     
  • Jason Lin 11:54 pm on October 4, 2014 链接地址 | 回复
    Tags:   

    mysql root用户远程登录命令 

    在安装mysql的机器上运行:

    1、# mysql -h localhost -u root
    //这样应该可以进入MySQL服务器
    2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION
    //赋予任何主机访问数据的权限
    3、mysql>FLUSH PRIVILEGES
    //修改生效
    4、mysql>EXIT
    

    //退出MySQL服务器
    这样就可以在其它任何的主机上以root身份登录啦。

     
  • Jason Lin 3:20 am on September 16, 2014 链接地址 | 回复
    Tags:   

    destoon模板存放规则及语法参考 

    一、模板存放及调用规则
    模板存放于系统 template 目录,template 目录下的一个目录
    例如 template/default/ 即为一套模板
    模板文件以 .htm 为扩展名,可直接存放于模板目录
    例如 template/default/index.htm
    也可以存放于模板目录的子目录里
    例如 template/default/member/index.htm
    在PHP文件里,使用模板语法为
    <?php include template(‘index’);?>
    或者
    <?php include template(‘index’, ‘member’);?>
    如果当前默认模板套系为default,则:
    <?php include template(‘header’);?>
    表示使用 template/default/header.htm 模板文件
    <?php include template(‘header’, ‘member’);?>
    表示使用 template/default/member/header.htm 模板文件
    模板目录下在 these.name.php 是模板别名的配置文件,模板别名可以在后台模板管理修改。
    模板解析后的缓存文件保存于cache/tpl/目录,扩展名为 .tpl.php
    二、模板语法
    1、包含模板 {template ‘header’} 或 {template ‘header’, ‘member’}
    {template ‘header’} 被解析为
    <?php include template(‘header’);?>
    表示使用 template/default/header.htm 模板文件
    {template ‘header’, ‘member’}
    被解析为 <?php include template(‘header’, ‘member’);?>
    表示使用 template/default/header.htm 模板文件
    2、变量或常量表示
    变量 {$destoon} 被解析为 <?php echo $destoon;?>
    常量 {DESTOON} 被解析为 <?php echo DESTOON;?>
    对于数组,标准写法应为 例如 {$destoon[‘index’]},可简写为 {$destoon[index]},模板在解析时会自动追加引号。
    3、函数 {func_name($par1, $par2)}
    {func_name($par1, $par2)} 被解析为
    <?php func_name($par1, $par2);?>
    4、PHP表达式 {php expression}
    {php expression} 被解析为 <?php expression ?>
    5、条件语句 {if $a==’b’} do A {/if} 或 {if $a==’b’} do A {else} do B {/if} 或 {if $a==’b’} do A {elseif $b==’c’} do C {else} do B {/if}
    {if $a==’b’} do A {/if} 被解析为
    <?php if($a==’b’) { do A }?>
    {if $a==’b’} do A {else} do B {/if} 被解析为
    <?php if($a==’b’) { do A } else { do B } ?>
    {if $a==’b’} do A {elseif $b==’c’} do C {else} do B {/if} 被解析为
    <?php if($a==’b’) { do A } else if($b==’c’) { do C } else { do B } ?>
    6、LOOP循环 {loop $var $v}…{loop} 或
    {loop $var $k $v}…{loop}
    {loop $var $v}…{loop} 被解析为
    <?php if(is_array($var)) { foreach($var as $v) { … } }?>
    {loop $var $k $v}…{loop} 被解析为
    <?php if(is_array($var)) { foreach($var as $k=>$v) { … } }?>
    三、特殊用法
    1、变量或表达式可以用HTML注释,例如 <!–{$destoon}–> 仍被解析为 <?php echo $destoon; ?> (可自动过滤此类注释)
    2、可直接在模板里书写PHP代码,直接书写PHP代码与 DESTOON 模板语法是兼容的。

     
  • Jason Lin 3:12 am on September 16, 2014 链接地址 | 回复
    Tags:   

    destoon数据库表解释说明 

    表名 注释
    destoon_404 404日志
    destoon_ad 广告
    destoon_ad_place 广告位
    destoon_admin 管理员
    destoon_admin_log 管理日志
    destoon_alert 贸易提醒
    destoon_announce 公告
    destoon_area 地区
    destoon_article_21 资讯
    destoon_article_data_21 资讯内容
    destoon_ask 客服中心
    destoon_banip IP禁止
    destoon_banword 词语过滤
    destoon_brand 品牌
    destoon_brand_data 品牌内容
    destoon_buy 求购
    destoon_buy_data 求购内容
    destoon_category 栏目
    destoon_comment 评论
    destoon_comment_ban 评论禁止
    destoon_comment_stat 评论统计
    destoon_company 公司
    destoon_company_data 公司内容
    destoon_company_setting 公司设置
    destoon_count 缓存统计
    destoon_down 下载
    destoon_down_data 下载内容
    destoon_exhibit 展会
    destoon_exhibit_data 展会内容
    destoon_favorite 商机收藏
    destoon_fetch 单页采集
    destoon_fields 自定义字段
    destoon_finance_card 充值卡
    destoon_finance_cash 申请提现
    destoon_finance_charge 在线充值
    destoon_finance_credit 积分流水
    destoon_finance_pay 支付记录
    destoon_finance_promo 优惠码
    destoon_finance_record 财务流水
    destoon_finance_sms 短信增减
    destoon_finance_trade 交易记录
    destoon_friend 我的商友
    destoon_group 会员组
    destoon_guestbook 留言本
    destoon_honor 荣誉资质
    destoon_info_22 招商
    destoon_info_data_22 招商内容
    destoon_job 招聘
    destoon_job_apply 应聘工作
    destoon_job_data 招聘内容
    destoon_job_talent 人才库
    destoon_keylink 关联链接
    destoon_keyword 关键词
    destoon_know 知道 查看
    destoon_know_answer 知道回答
    destoon_know_data 知道内容
    destoon_know_vote 知道投票
    destoon_link 友情链接
    destoon_login 登录日志
    destoon_mail 邮件订阅
    destoon_mail_list 订阅列表
    destoon_member 会员
    destoon_message 站内信件
    destoon_module 模型
    destoon_news 公司新闻
    destoon_news_data 公司新闻内容
    destoon_photo 图库
    destoon_photo_data 图库内容
    destoon_photo_item 图库图片
    destoon_question 验证问题
    destoon_quote 行情
    destoon_quote_data 行情内容
    destoon_quote_product 行情产品
    destoon_resume 简历
    destoon_resume_data 简历内容
    destoon_sell 供应
    destoon_sell_data 供应内容
    destoon_sell_option 产品属性
    destoon_sell_product 产品名称
    destoon_sell_value 产品属性值
    destoon_session SESSION
    destoon_setting 网站设置
    destoon_sms 短信记录
    destoon_special 专题
    destoon_special_data 专题内容
    destoon_special_item 专题信息
    destoon_spread 排名推广
    destoon_spread_price 排名起价
    destoon_style 公司主页模板
    destoon_type 分类
    destoon_upgrade 会员升级
    destoon_upload 上传记录
    destoon_validate 资料认证
    destoon_video 视频
    destoon_video_data 视频内容
    destoon_vote 投票
    destoon_vote_record 投票记录
    destoon_webpage 单网页

     
  • Jason Lin 9:46 am on September 12, 2014 链接地址 | 回复
    Tags:   

    IOS8新功能 

    即将上线的IOS8很值的期待,从预告来看,最值的我期待的除了iCloud 升级,可以当磁盘存储管理,就是Connected(多屏共享)和iMessage的升级了。
    iPhone、iPad和Mac 都可以享几乎所有的内容,包括正在编辑的文档、邮件、信息和电话。试想一下,正在手机上做的事,觉得屏幕小了,就切换到Mac上继续;在Mac上看的文件,正好要出门,切换到手机上继续。这将是多么神奇。
    iMessage升级后,可以发送语音和视频了,这相当于微信的功能了。

     
c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
回复
e
编辑
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
取消