月度归档: 2017 年 8 月

  • WordPress 采集插件 wp-jpost 问答总结

    WordPress 采集插件 wp-jpost 问答总结

    [title]使用了Auto Save Image插件后目标站的图片还是抓不到?[/title]

    我们需要对html代码进行分析了,查看一下目标站的图片路径是不是相对路径(即没有http:// 打头的路径),如果是相对路径的话我们这里可以使用搜索替换文字功能,将图片的前缀替换成他的绝对路径即可。

    [title]宝塔面板填写curl地址后出现错误[/title]

    宝塔面板 Warning: is_executable(): open_basedir

    [title]0.0.5更新后为什么会出现404 错误?[/title]

    由于之前的版本我们的采集页面返回的代码是404,所以我们0.1开始做了更新,将http code 从 404 变成 200.

    可以将插件目录中wp-jpost.php里的 260、261行前的注释去掉,变成:

    function jpost_plugin_rules() {
        add_rewrite_rule('^jpost/?([^/]*)', 'index.php?jpost=jpost&$matches[1]', 'top');
        add_rewrite_endpoint( 'jpost', EP_PERMALINK );
    // 重置规则请删除一下2行的注释    
        global $wp_rewrite;     
        $wp_rewrite->flush_rules(); 
    }

    运行一次插件任务调试,然后再回去到原来的版本。

    这样做的目的是为了重置rewrite规则并保存到数据库。

    [title]使用宝塔面板后,http://laoji.org/jpost/xxx 出现404 错误?[/title]

    1、检查网站是否启用了WordPress的rewrite规则,如果没有,请启用。【请注意:暂时无法兼容WordPress固定链接的 朴素 格式

    2、打开面板,对应的网站网站,设置 — 配置文件,将404的错误注释或者删除掉(从web服务移交给WordPress) :

    Nginx:

    error_page 404 /404.html;

    Apache:

    errorDocument 404 /404.html

    [title]如何保存采集中的图片以及自动去除文中的所有链接?[/title]

    wp-jpost 插件兼容了 Auto_Save_Image 插件,并进行了修改,使它来自动保存修改文中的图片及去除链接。

    可加群下载本插件。

    [title]刚配置完任务,点击【调试】【采集】按钮出现空白页面?[/title]

    这种情况可能是插件冲突导致的,建议您禁用其他所有插件后再进行调试、采集。

  • WordPress无插件实现内容目录索引

    WordPress无插件实现内容目录索引

    WordPress 文章内容索引插件:https://wordpress.org/plugins/table-of-contents-plus/

    鉴于WP程序的负载很大,能少使用插件就少使用。那有没有不使用插件可以实现这样的索引功能能?于是我找着找着,终于找到一个博主分享的这样的无插件实现内容索引效果。

    [title]修改模板所在的function.php文件[/title]

    function article_index($content) {
        $matches = array();
        $ul_li = '';
        $r = "/<h3>([^<]+)<\/h3>/im";
        if(preg_match_all($r, $content, $matches)) {
            foreach($matches[1] as $num => $title) {
                $content = str_replace($matches[0][$num], '<h4 id="title-'.$num.'">'.$title.'</h4>', $content);
                $ul_li .= '<li><a href="#title-'.$num.'" title="'.$title.'">'.$title."</a></li>\n";
            }
            $content = "\n<div id=\"article-index\">
                    <strong>文章目录</strong>
                    <ul id=\"index-ul\">\n" . $ul_li . "</ul>
                </div>\n" . $content;
        }
        return $content;
    }
    add_filter( "the_content", "article_index" );

    [title]优化界面,修改CSS[/title]

    在我们内容编辑的时候,切换到HTML编辑器,然后在需要索引的标题用H3标注,具体的用H几要和上面的定义FUNCTION对应,默认的是H3。然后在显示的时候会自动抓取。为了达到美化的效果,需要用到CSS,具体的还是要根据需求调整。

    #article-index {
        -moz-border-radius: 6px 6px 6px 6px;
        border: 1px solid #DEDFE1;
        float: right;
        margin: 0 0 15px 15px;
        padding: 0 6px;
        width: 200px;
        line-height: 23px;
    }
    #article-index strong {
        border-bottom: 1px dashed #DDDDDD;
        display: block;
        line-height: 30px;
        padding: 0 4px;
    }
    #index-ul {
        margin: 0;
        padding-bottom: 10px;
    }
    #index-ul li {
        background: none repeat scroll 0 0 transparent;
        list-style-type: disc;
        padding: 0;
        margin-left: 20px;
    }
  • WordPress 采集插件 wp-jpost 网站 ruiwen.com 规则示例

    WordPress 采集插件 wp-jpost 网站 ruiwen.com 规则示例

    前面我们写了WordPress的采集插件wp-jpost

    老季常用国内/国外VPS推荐总结

    便宜VPS 搬瓦工bandwagonhost 优惠码

    Vultr 充5美元可以用5个月VPS 充值最高送100美元

    Linode全面升级 推出月付5刀的套餐 机房可选东京2

    基本设置

    任务名ruiwen
    网站地址http://www.ruiwen.com/
    列表地址http://www.ruiwen.com/yanjianggao/
    列表a元素div[class="list_news"] ul li h2 a
    分页格式list_{page}.html
    分页最大值1

    单页设置

    文章标题元素title
    文章正文元素div[class="content"]
    入库分类ID234
    文章标签语文,演讲稿

    搜索替换

    搜索的文字/代码
    替换成文字/代码

    其他设置

    Curl 路径
    UserAgent
  • Linux 下 查看系统信息 的方法 脚本

    Linux 下 查看系统信息 的方法 脚本

    能够较为准确的计算出已安装硬盘容量.
    不提供比较鸡肋的延迟和测速功能.

    • 使用:
    bash -c "$(wget –no-check-certificate -qO- 'https://moeclub.org/attachment/LinuxShell/bench.sh')"
    
    • 脚本代码:
    #!/bin/bash
     
    get_opsy() {
        [ -f /etc/redhat-release ] && awk '{print ($1,$3~/^[0-9]/?$3:$4)}' /etc/redhat-release && return
        [ -f /etc/os-release ] && awk -F'[= "]' '/PRETTY_NAME/{print $3,$4,$5}' /etc/os-release && return
        [ -f /etc/lsb-release ] && awk -F'[="]+' '/DESCRIPTION/{print $2}' /etc/lsb-release && return
    }
     
    next() {
        printf "%-70s\n" "-" | sed 's/\s/-/g'
    }
     
    io_test() {
        (LANG=en_US dd if=/dev/zero of=test_$$ bs=64k count=16k conv=fdatasync) 2>&1 | awk -F, '{io=$NF} END { print io}' | sed 's/^[ \t]*//;s/[ \t]*$//'
        rm -rf test_*;
    }
     
    read_Free() {
        Free="0"
        for addFree in `df |awk -v c=$1 '/^\/dev/{print $c}'`
          do 
            [ -n "$(echo "$addFree" |grep '[^0-9.]')" ] && echo "$addFree" && break;  
            Free=$( awk 'BEGIN{print '$Free' + '$addFree'}' )
          done
        [ $Free != '0' ] && {
        for UNIT in `echo 'M G T P'`
          do
            Free=$( awk 'BEGIN{print '$Free' / '1024'}' )
            [[ "$(echo -n "$Free" |cut -d'.' -f1)" -lt '1024' ]] && break;
            [ $UNIT == 'P' ] && break;
          done
        echo "$Free$UNIT"
        }
    }
     
        cname=$( awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//' )
        cores=$( awk -F: '/model name/ {core++} END {print core}' /proc/cpuinfo )
        freq=$( awk -F: '/cpu MHz/ {freq=$2} END {print freq}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//' )
        tram=$( free -m | awk '/Mem/ {print $2}' )
        swap=$( free -m | awk '/Swap/ {print $2}' )
        disk=$( read_Free '2' )
        fred=$( read_Free '4' )
        usdp=$( read_Free '5' )
        up=$( awk '{a=$1/86400;b=($1%86400)/3600;c=($1%3600)/60;d=$1%60} {printf("%d days, %d:%d:%d\n",a,b,c,d)}' /proc/uptime )
        load=$( w | head -1 | awk -F'load average:' '{print $2}' | sed 's/^[ \t]*//;s/[ \t]*$//' )
        opsy=$( get_opsy )
        arch=$( uname -m )
        lbit=$( getconf LONG_BIT )
        kern=$( uname -r )
     
        clear
        next
        echo -e "\t\t\tInformation View"
        next
        echo "CPU model            : $cname"
        echo "Number of cores      : $cores"
        echo "CPU frequency        : $freq MHz"
        echo "Total RAM/SWAP       : $tram MB/$swap MB"
        echo "Disk capactiy        : $fred/$disk ($usdp)"
        echo "System uptime        : $up"
        echo "Load average         : $load"
        echo "OS                   : $opsy"
        echo "Arch                 : $arch ($lbit Bit)"
        echo "Kernel               : $kern"
    next
     
        echo -ne "I/O speed   :"
        io1=$( io_test )
        echo -ne " $io1"
        io2=$( io_test )
        echo -ne "    $io2"
        io3=$( io_test )
        echo -ne "    $io3\n"
        ioraw1=$( echo $io1 | awk 'NR==1 {print $1}' )
        [ "`echo $io1 | awk 'NR==1 {print $2}'`" == "GB/s" ] && ioraw1=$( awk 'BEGIN{print '$ioraw1' * 1024}' )
        ioraw2=$( echo $io2 | awk 'NR==1 {print $1}' )
        [ "`echo $io2 | awk 'NR==1 {print $2}'`" == "GB/s" ] && ioraw2=$( awk 'BEGIN{print '$ioraw2' * 1024}' )
        ioraw3=$( echo $io3 | awk 'NR==1 {print $1}' )
        [ "`echo $io3 | awk 'NR==1 {print $2}'`" == "GB/s" ] && ioraw3=$( awk 'BEGIN{print '$ioraw3' * 1024}' )
        ioall=$( awk 'BEGIN{print '$ioraw1' + '$ioraw2' + '$ioraw3'}' )
        ioavg=$( awk 'BEGIN{print '$ioall'/3}' )
        echo "I/O Average : $ioavg MB/s"
    next
        echo
        exit 0;

     

  • Vultr 创建每月2.5$ 日本节点的方法

    Vultr 创建每月2.5$ 日本节点的方法

    Vultr账号注册及购买使用教程

    [title]
    先安装curl,用于使用API.
    [/title]

      • Debian/Ubuntu:
      • Centos:

    [title]
    API模板:
    [/title]

    [title]
    API-Key:EXAMPLE :
    [/title]

    请将EXAMPLE换成自己的 API,在 https://my.vultr.com/settings/#settingsapi 开通,在 Access Control 里允许所有 IPv4 和 IPv6 访问,或者放行自己电脑的本地 IP

    [title]
    DCID:
    [/title]

    [title]
    VPSPLANID:
    [/title]

    [title]
    OSID:
    [/title]

  • php  parse_str  将url参数字符串转成数组

    php parse_str 将url参数字符串转成数组

    将url参数字符串转成数组

    $str = ‘a=1&b=2&c=3’;

    parse_str($str, $arr);

    var_dump($arr);

    //输出

    array (size=3)

    ‘a’ => string ‘1’ (length=1)

    ‘b’ => string ‘2’ (length=1)

    ‘c’ => string ‘3’ (length=1)

  • WordPress Plugins make customer url/page 自定义页面/参数 代码示例

    WordPress Plugins make customer url/page 自定义页面/参数 代码示例

    之前我们做了WordPress自动采集并发布内容的插件,里面用到了需要重新另外打开一个窗口来采集内容,以防止出现不必要的错误而导致中断。

    这里使用到了一个新的定义,比如我需要使用

    https://laoji.org/jpost/?jtask=laoji.org

    但其实这个页面并不存在,这里只是虚拟了一个页面和参数来处理数据。

    具体代码如下:

    //register activation function
    register_activation_hook(__FILE__, 'jpost_activate');
    //register deactivation function
    register_deactivation_hook(__FILE__, 'jpost_deactivate');
     
     
    function jpost_activate() {
        jpost_plugin_rules();
        flush_rewrite_rules();
     }
    function jpost_deactivate() {
        flush_rewrite_rules();
    }
    //add rewrite rules in case another plugin flushes rules
    add_action('init', 'jpost_plugin_rules');
    //add plugin query vars (product_id) to wordpress
    add_filter('query_vars', 'jpost_plugin_query_vars');
    //register plugin custom pages display
    add_filter('template_redirect', 'jpost_plugin_display');
    
     
    function jpost_plugin_rules() {
        add_rewrite_rule('jpost/?([^/]*)', 'index.php?jpost=jpost&$matches[1]', 'top');
    //    调试时如需要重新应用rewrite规则并保存到数据,删除以下2行的注释
    //    global $wp_rewrite; 
    //    $wp_rewrite->flush_rules(); 
    }
    function jpost_plugin_query_vars($query_vars) {
        array_push($query_vars,'jpost');
        array_push($query_vars,'jtask');
        array_push($query_vars,'i');
        array_push($query_vars,'jpage');
        array_push($query_vars,'debug');
        return $query_vars;
    }
    function jpost_plugin_display(  $templates = '' ) {
        global $wp_query,$wpdb,$options;
        $template = $wp_query->query_vars;
        if ( array_key_exists( 'jpost', $template ) && 'jpost' == $template['jpost'] ):
            if ( is_user_logged_in() ) { 
                require_once  plugin_dir_path( __FILE__ )."wp-jcrawl.php";
            }else{
                echo wp_jpost_output('Access denied.');
            }
            exit;
        endif;
    }

     

  • Javascript获取地址栏参数 自定义函数 实例

    Javascript获取地址栏参数 自定义函数 实例

    采用正则表达式获取地址栏参数:(?强烈推荐,既实用又方便!)

    function GetQueryString(name){
        var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if(r!=null) return unescape(r[2]); return null;
    }
    // 调用方法
    alert(GetQueryString("参数名1"));
    alert(GetQueryString("参数名2"));
    alert(GetQueryString("参数名3"));

    下面举一个例子:

    若地址栏URL为:abc.html?id=123&url=http://laoji.org

    那么,但你用上面的方法去调用:alert(GetQueryString(“url”));

    则会弹出一个对话框:内容就是 http://laoji.org

    如果用:alert(GetQueryString(“id”));那么弹出的内容就是 123 啦;

    当然如果你没有传参数的话,比如你的地址是 abc.html 后面没有参数,那强行输出调用结果有的时候会报错:

    所以我们要加一个判断 ,判断我们请求的参数是否为空,首先把值赋给一个变量:

    var myurl=GetQueryString("url");
    if(myurl != null && myurl.toString().length>1){
        alert(GetQueryString("url"));
    }

    这样就不会报错了!

  • WordPress 免费开源采集插件 WP-JPost

    WordPress 免费开源采集插件 WP-JPost

    本页已停止维护,请移步:https://www.jiloc.com/wp-jpost

    之前我们在网上看到有wp-autopost插件,是自动采集的。但是需要付费。

    下面我们这边发布一个开源的版本。如果觉得好,大家可以赞助我们哦~

    本插件使用需要一定的html、css 基础.

    本插件开发纯属兴趣~~~插件已发布到wordpress官方插件中心

    WordPress 开源采集插件 wp-jpost 使用问题

    不会写采集规则?请博主帮写一个~亲,插件免费,规则有价,详情请联系QQ:366609877 (注明:wp-jpost 规则)

    主要功能

    1. 定向采集目标网站内容,并直接发布。
    2. 可以设置对应入库的分类。
    3. 可以自定义文章的标签。
    4. 可以自定义替换标题、文章内容。
    5. 自动另存为图片到本地。
    6. 自动删除内容中的所有链接。
    7. 加入百度翻译,可以将内容翻译成英文。
    8. 脚本定时自动增量功能。

    插件截图如下

    (更多…)
  • html input value 属性遇到引号不显示的解决方法

    html input value 属性遇到引号不显示的解决方法

    <?php  
    $value="博尔特百米成绩是9'01/" 不可能吧?!";  
    ?>  
    <input type="text" value="<?php echo $value; ?>" />

    如果 $value 的值中包括双引号,那么 input 在页面上只会把 $value 显示到双引号之前,双引号之后的内容不会显示,源代码里面则可以看到。

    解决方法,把 $value 的引号用转义字符表示,使用str_replace函数,其中双引号的转义字符是:&#34;,单引号的转义字符是:&#39;。

    <input type=text value="<?php echo str_replace('"', '&#34;', str_replace("'", '&#39;', $value)); ?>" />

WeChat