【问题标题】:PHP simple strip_tags and truncate string error: connection resetPHP简单的strip_tags和截断字符串错误:连接重置
【发布时间】:2011-09-13 00:17:06
【问题描述】:

我有以下代码,从管理区域保存时会创建 HTML 内容正文的副本。问题是如果我将 max_length 设置为 160 以上,我会收到连接重置错误。

我的代码有问题吗?或者这对于 apache/php 来说太简单了?

content_body 可以是从 TinyMCE 输入的一大块 HTML 文本。

if($oRequest->get("contents.content_body")){
    $max_length = 255;
    $long_text = strip_tags(trim($oRequest->get("contents.content_body")));

    if(strlen($long_text) > $max_length){
        $short_text = (substr($long_text,0,$max_length));
    } else {
        $short_text = $long_text;
    }

    try {   
        $db = Db_Connections::getInstance()->getConnection();   
        $sql = "UPDATE `contents` SET `content_body_short` = '".mysql_real_escape_string($short_text)."' WHERE content_id = ".(int)$contentID;
        $db->query($sql);       
    } catch (Exception $e) {    
        throw $e;
    }
}

编辑:

我已尝试添加超时 (0),但这并没有什么不同。

错误日志不确定这是否有帮助

[Tue Sep 13 11:10:25 2011] [notice] Parent: child process exited with status 255 -- Restarting.
[Tue Sep 13 11:10:26 2011] [notice] Apache/2.2.17 (Win32) PHP/5.3.4 configured -- resuming normal operations
[Tue Sep 13 11:10:26 2011] [notice] Server built: Oct 24 2010 13:33:15
[Tue Sep 13 11:10:26 2011] [notice] Parent: Created child process 2964
[Tue Sep 13 11:10:26 2011] [notice] Child 2964: Child process is running
[Tue Sep 13 11:10:26 2011] [notice] Child 2964: Acquired the start mutex.
[Tue Sep 13 11:10:26 2011] [notice] Child 2964: Starting 64 worker threads.
[Tue Sep 13 11:10:26 2011] [notice] Child 2964: Starting thread to listen on port 80.

编辑:我发现这只发生在我的本地开发环境中,并且在我的 Debain Squeeze 服务器上完美运行

本地设置:

  • WAMP 2.1
  • Apache 2.2.17
  • PHP 5.3.4
  • MYSQL 5.1.53
  • pdo_mysql: mysqlnd 5.0.7-dev - 091210 - $Revision: 304625 $
  • pdo_sqlite:SQLite 库 3.7.3

【问题讨论】:

  • 你检查过你的日志文件了吗?
  • 编辑:从日志中添加了错误日志,尽管它看起来并不相关。
  • 您是否已经检查了 php.ini 中的设置?另外,您的 content_body_short 数据库字段的大小是多少——它是如何定义的?
  • php.ini 中的哪个设置?最好我更喜欢将此设置保留为默认设置,以便它可以在其他服务器上运行。 content_body_short 是一个 varchar(255)
  • 255 的大小太短,不会对 Apache 或 PHP 造成任何问题。只是一个问题,您为什么要捕获异常以重新抛出它而不进行任何处理?是否有可能是 SQL 部分存在问题而您因此看不到它?如果有异常,您可以打印异常的内容并用它更新您的问题吗?

标签: php apache


【解决方案1】:

是你的 apache,当 apache 孩子掉下来时,我有时会遇到连接关闭错误,这可能有很多原因。

  • PHP 5.3.4 对线程上下文进行了一些更改,这可能会使其不稳定
  • 使用带线程worker的php,php在线程环境下总是有些麻烦

我注意到你使用的是win32,所以可以试试:

  • 带有更稳定的 apache/php 包(wamp 和那个东西)
  • 降级 php。
  • 更改为 apache 的无线程 mpm

希望对你有所帮助,祝你有美好的一天。

【讨论】:

  • PHP/Apache什么版本稳定?
  • 老实说,当发生这样的错误时,很多变量会有所不同,取决于版本,一些 apache 的东西,所以最好尝试最常用的版本。
猜你喜欢
  • 2012-12-12
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-31
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
相关资源
最近更新 更多