2010-11-24 3 views
1

PHP関数に大量のテキストを渡して圧縮して返します。テキストが途切れています。それのすべてが戻ってきているわけではありません。最後の言葉のいくつかは圧縮された後に表示されません。 PHPはこれをどこかで制限していますか?phpカスタム関数はテキストを切り詰めていますが、私はそれをしたくありません

function compress($buffer) { 
    /* remove comments */ 
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); 
    /* remove tabs, spaces, newlines, etc. */ 
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); 
    return $buffer; 
} 

です。そのからhttp://www.antedes.com/blog/webdevelopment/three-ways-to-compress-css-files-using-php

この問題を解決するためのphp.iniの設定がありますか?

+0

構文解析しているcssファイルに問題がある可能性があります。圧縮されていてもcssファイルはうまくいきました。どのように '$ buffer'変数を取得していますか?あなたはfopenをやっていますか? –

+0

ファイルは以前は正常に機能していました。その.jsファイル。ヘッダーを作成しました( 'Content-type:text/javascript')。 javascriptであり、CSSではありません。私のサイトの多くはAjaxなので、非常に大きなJsファイルがあります。 – Keverw

答えて

1

あなたのcompress()機能は、JSではなくCSSファイルに適しています。これは私が(jqueryの-UIや他のモンスターを含む) "圧縮" CSSに使用するものです。

function compress_css($string) 
{ 
    $string = preg_replace('~/\*[^*]*\*+([^/][^*]*\*+)*/~', '', $string); 
    $string = preg_replace('~\s+~', ' ', $string); 
    $string = preg_replace('~ *+([{}+>:;,]) *~', '$1', trim($string)); 
    $string = str_replace(';}', '}', $string); 
    $string = preg_replace('~[^{}]++\{\}~', '', $string); 
    return $string; 
} 

とJavaScriptはこの1つのファイルに対して:https://github.com/mishoo/UglifyJS2(またはこの:http://lisperator.net/uglifyjs/#demo)を

私はそこに確信しています同じタスクのための他の優れたツールですが、あなたに合ったものを見つけてそれを使用してください。

関連する問題