相关疑难解决方法(0)

使用CodeIgniter的正则表达式缩小最终的HTML输出

Google页面建议您缩小HTML,即删除所有不必要的空格. CodeIgniter确实具有giziping输出的功能,或者可以通过.htaccess.但我仍然想从最终的HTML输出中删除不必要的空格.

我用这段代码玩了一下,看起来很有效.这确实导致HTML没有多余空格并删除其他选项卡格式.

class Welcome extends CI_Controller 
{
    function _output()
    {
        echo preg_replace('!\s+!', ' ', $output);
    }

    function index(){
    ...
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是可能有像<pre>,<textarea>等等的标签 ,其中可能有空格,正则表达式应该删除它们.那么,如何从最终的HTML中删除多余的空间,而不使用正则表达式影响这些特定标记的空格或格式?

感谢@Alan Moore得到了答案,这对我有用

echo preg_replace('#(?ix)(?>[^\S ]\s*|\s{2,})(?=(?:(?:[^<]++|<(?!/?(?:textarea|pre)\b))*+)(?:<(?>textarea|pre)\b|\z))#', ' ', $output);
Run Code Online (Sandbox Code Playgroud)

ridgerunner在分析这个正则表达方面做得很好.我最终使用了他的解决方案.干杯里的干杯.

php regex compression codeigniter

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

preg_match函数中的RegExp返回浏览器错误

以下函数打破了我在$ pattern变量中提供的正则表达式.如果我改变正则表达式我很好,所以我认为这是问题所在.但是,我没有看到这个问题,即使它们已经打开,我也没有收到标准的PHP错误.

function parseAPIResults($results){
//Takes results from getAPIResults, returns array.

    $pattern = '/\[(.|\n)+\]/';
    $resultsArray = preg_match($pattern, $results, $matches);

}
Run Code Online (Sandbox Code Playgroud)

Firefox 6:连接已重置

Chrome 14:错误101(net :: ERR_CONNECTION_RESET):连接已重置.

IE 8:Internet Explorer无法显示网页

更新:
Apache/PHP可能崩溃.这是我运行脚本时的Apache错误日志:

[2011年10月1日星期六11:41:40] [通知]父:子进程退出状态255 - 重新启动.
[2011年10月1日星期六11:41:40] [通知]配置Apache/2.2.11(Win32)PHP/5.3.0 - 恢复正常运行

在Windows 7上运行WAMP 2.0.

php regex apache wamp connection-reset

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

PHP正则表达式:这段代码有什么问题吗?

preg_replace_callback('#<(code|pre)([^>]*)>(((?!</?\1).)*|(?R))*</\1>#si', 'self::replaceit', $text);

我正在尝试在代码/预标记之间替换文本,它可以实现我想要的,但有时会破坏页面.

我用几个文本样本测试了它,其中一些包含许多&amp; &lt;等字符使浏览器停止显示带有"远程服务器关闭的连接"消息的页面

php regex string

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

标签 统计

php ×3

regex ×3

apache ×1

codeigniter ×1

compression ×1

connection-reset ×1

string ×1

wamp ×1