【问题标题】:fix phpQueryObject.php Fatal error: Allowed memory size of 134217728 bytes exhausted修复 phpQueryObject.php 致命错误:允许的内存大小为 134217728 字节已用尽
【发布时间】:2016-07-12 18:03:33
【问题描述】:

为什么取消注释此代码中的最后一行会导致致命错误

$html = phpQuery::newDocumentHTML($social_icons_block);

$html->find('.managed-form')->remove();
$html->find('.drag-handle')->parent()->remove();
$html->find('.set-social-icons')->parent()->remove();
//$html->find('.pull-left-space')->remove();

错误是

致命错误:/Applications/AMPPS/www/startup/assets/classes/phpQuery/phpQuery/phpQueryObject.php 第 3069 行中允许的内存大小为 134217728 字节已用尽(尝试分配 20 字节)

html是

<div class="managed-form">
    <div class="wrp">
        <h3>Social Icons</h3>
        <div name="set-social-icons" complex-input="set" template=".set-social-icons"></div>
    </div>
</div>

<div class="set-social-icons row">
    <div class="pull-left">
        <div class="drag-handle">&#8645;</div>
    </div>
    <div class="pull-left-space">
            <select name="social-icon" class="inputBox-xsmall">
                <option value="facebook">Facebook</option>
                <option value="linkedin">LinkedIn</option>
                <option value="twitter">Twitter</option>
                <option value="youtube">Youtube</option>
                <option value="instagram">Instagram</option>
                <option value="pinterest">Pinterest</option>
                <option value="google-plus">Google Plus</option>
                <option value="rss">RSS</option>
            </select>
    </div>
    <div class="pull-left-space link-outer">
        <input name="link" class="inputBox inputBox-small" placeholder="Link To"/>
    </div>
    <div class="pull-left-space">
        <input type="button" class="add-row" value="+" />
        <input type="button" class="delete-row" value="-" />
    </div>
</div>

添加 echo memory_get_usage();在注释行给出 4517876 之前。内存设置为 128M

【问题讨论】:

  • 那个与phpQuery库无关。
  • 所有允许的内存大小错误都相同。他们过去遇到与您相同的错误是无关紧要的。
  • 我同意,但这不是我问这个问题的原因。
  • 此外,您的脚本在/Applications/AMPPS/www/startup/assets/classes/phpQuery/phpQuery/phpQueryObject.php 处死掉,因此查看该文件第 3069 行以外的任何内容都是在查看与错误无关的内容。除非您打算重写此库或修复此库,否则我将其标记为副本的问题的任何答案都适用。这就是我标记它的原因:p

标签: php fatal-error phpquery


【解决方案1】:

在这种特定情况下,事实证明我的选择器没有正确设置

'.set-social-icons' 父级不存在,从 html 中可以看出没有父级。所以我认为代码会删除所有 html,下一行尝试从空文档中删除一些内容。

当变量中的 html 不存在时,getNodeXpath 函数可能会中断

谢谢

【讨论】:

    猜你喜欢
    • 2011-02-23
    • 2016-04-13
    • 2015-07-06
    • 2016-12-11
    • 2017-11-15
    • 2017-01-05
    • 2015-11-16
    • 2012-08-29
    • 1970-01-01
    相关资源
    最近更新 更多