小编Hyd*_*erA的帖子

管理大型日志文件

我们有一个持久爬行我们的目标站点的爬虫,它的日志文件变得非常庞大.在某些情况下超过1 GB,我不太习惯删除或覆盖它们.您如何管理大型日志文件的任何示例?

php debugging logging

4
推荐指数
1
解决办法
1316
查看次数

模块'ssh2'已在第0行的Unknown中加载

我使用下面的函数将文件从一个服务器复制到另一个服务器.它大部分时间都有效,但有时我会在日志文件中开始出现此错误:

Module 'ssh2' already loaded in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)

它会停止复制.稍后由于某种原因,错误将停止,复制将再次开始工作.这是什么问题?

function getConn($server,$username,$password)
{
    $connection = 0;

    if (function_exists("ssh2_connect")) 
    {
        $connection = ssh2_connect($server, 3817);
        if($connection)
        {
            if(ssh2_auth_password($connection, $username, $password))
            {
                return $connection;
            }
        }
    }
    return 0;
}
function scp($server,$username,$password,$remotepath,$localpath)
{
    $connection = 0;
    $connection = $this->getConn($server,$username,$password);
    if($connection)
    {
        $ret = ssh2_scp_send($connection, $localpath, $remotepath, 0644);
        ssh2_exec($connection, 'exit'); 
    }
}
Run Code Online (Sandbox Code Playgroud)

php ssh

4
推荐指数
1
解决办法
7392
查看次数

测试以查看Gearman守护程序是否正在运行

我想查看Gearman守护程序是否正在运行.然后才运行任务,以便我的应用程序不会崩溃.

这是我的代码:

$daemonRunning = true;

while( true )
{
    try
    {
        Yii::app()->gearman->client->ping( true );

        if ( $daemonRunning === false )
        {
            echo "Daemon back online. Starting signature process...\n";
        }

        Yii::app()->gearman->client->runTasks();
    }
    catch( GearmanException $e )
    {
        echo "Daemon appears to be down. Waiting for it to come back up...\n";
        $daemonRunning = false;
    }
    sleep(1);
}
Run Code Online (Sandbox Code Playgroud)

但问题是ping不会抛出异常,它会抛出一个致命的错误:

PHP Error[2]: GearmanClient::ping(): flush(GEARMAN_COULD_NOT_CONNECT) 127.0.0.1:4730 -> libgearman/connection.cc:673
Run Code Online (Sandbox Code Playgroud)

虽然奇怪的是,如果我删除ping并仅使用runTasks,则抛出异常.

有关:

当进程运行时Gearman守护程序关闭时,如何处理错误?当我关闭Gearman守护进程时,我从PHP得到以下错误:

php: libgearman/universal.cc:481: gearman_return_t connection_loop(gearman_universal_st&, const gearman_packet_st&, Check&): Assertion …
Run Code Online (Sandbox Code Playgroud)

php daemon worker gearman

4
推荐指数
1
解决办法
5588
查看次数

多语言Web应用程序的设计注意事项

今天有一位采访者问我如何将阿拉伯语作为第二语言实现到PHP Web应用程序中.我谈到为数据库和前端选择unicode编码,以及设计RTL友好的用户界面模块.他对答案似乎并不满意.我对多语言系统一无所知,你会如何回答这个问题?

localization web-applications arabic right-to-left

3
推荐指数
1
解决办法
4479
查看次数

CKEditor RTL问题

我已经添加了language:'ar',contentsLangDirection:'rtl',contentsLanguage:'ar'使用jQuery适配器被初始化选项,我CKEditor的实例.但文本仍然保持一致.

<html>使用dir='rtl'和声明标记lang='ar',但是在每个<p>标记上,它都具有内联text-align: left样式.

我该如何摆脱那种风格?

javascript jquery arabic jquery-plugins ckeditor

3
推荐指数
1
解决办法
1551
查看次数

忽略正则表达式模式中的重复项

我有一个正则表达式模式,用于搜索文本文件中的单词.我如何忽略重复?

例如,看看这段代码

$pattern = '/(lorem|ipsum|daboom|pahwal|ababaga)/i';
$num_found = preg_match_all( $pattern, $string, $matches );

echo "$num_found match(es) found!";
echo "Matched words: " . implode( ',', $matches[0] );
Run Code Online (Sandbox Code Playgroud)

如果我在文章中有不止一个说lorem,输出将是这样的

5 matches found!
Matched words: daboom,lorem,lorem,lorem,lorem
Run Code Online (Sandbox Code Playgroud)

我希望模式只找到第一个出现,并忽略其余的,所以输出应该是:

2 matches found!
Matched words: daboom,lorem
Run Code Online (Sandbox Code Playgroud)

php regex

3
推荐指数
1
解决办法
520
查看次数

脚本在一段时间后不断消失,而不是超时/内存问题

我有一个长期运行的脚本,无缘无故地消失了.它应该运行超过8小时,但一两个小时后就会消失,没有错误,什么都没有.我尝试通过CLI和http运行它,没有区别.

我有以下参数设置:

set_time_limit(0);
ini_set('memory_limit', '1024M');
Run Code Online (Sandbox Code Playgroud)

我一直在监视内存使用情况,它不会超过200M

还有什么我想念的吗?它为什么会消亡?

php apache

3
推荐指数
1
解决办法
1779
查看次数

"由于此安装程序配置错误,因此无法安装此应用程序.请联系应用程序作者以获取帮助."

我在FB4中编译了我的AIR应用程序的.air文件,我在尝试安装时遇到了这个错误.我尝试创建一个新的应用程序,只是复制代码,我得到相同的错误.我究竟做错了什么?我甚至多次重新创建证书.

apache-flex air installer certificate

3
推荐指数
1
解决办法
1万
查看次数

LEFT JOIN不显示左侧表格的所有行

考虑这个查询:

SELECT s.*, COUNT( ssh_logs.id ) AS ssh_count FROM servers s 
LEFT JOIN logs ssh_logs ON s.ip_address = ssh_logs.server_ip
Run Code Online (Sandbox Code Playgroud)

我的印象是LEFT JOIN左表上显示所有行,无论条件是否匹配ON.

SELECT s.* FROM servers s
Run Code Online (Sandbox Code Playgroud)

返回12个条目,而第一个查询仅返回ip地址匹配的1.

那么如何让第一个查询显示服务器表中的所有行以及连接的表数据?

mysql join

3
推荐指数
1
解决办法
559
查看次数

承诺在下一次之前不等待解决

码:

var x = new Promise((resolve, reject) => {
    setTimeout( function() {
        console.log( 'x done' );
        resolve()
    }, 1000 );
});


Promise.resolve().then(x).then((resolve, reject) => {
    console.log( 'all done' );
});
Run Code Online (Sandbox Code Playgroud)

输出:

all done
x done
Run Code Online (Sandbox Code Playgroud)

预期产量:

x done
all done
Run Code Online (Sandbox Code Playgroud)

x在调用下一个then回调之前,为什么承诺没有等待解决?

JSFiddle:https://jsfiddle.net/puhbqtu0/1/

javascript promise

3
推荐指数
1
解决办法
6801
查看次数