2010-11-24 5 views
1

Je passe une grande quantité de texte à une fonction PHP et le faire revenir compressé. Le texte est coupé. Tout n'est pas refilé. Comme certains des mots à la fin ne se présentent pas après avoir été compressé. Est-ce que PHP limite cela quelque part?Php fonction personnalisée est Tronquer le texte, mais je ne le veux pas à

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; 
} 

est la fonction. Son de http://www.antedes.com/blog/webdevelopment/three-ways-to-compress-css-files-using-php

Y a-t-il un paramètre dans php.ini pour résoudre ce problème?

+0

il est tout à fait possible qu'il y ait un problème avec le fichier css que vous êtes en train d'analyser ... le fichier css a-t-il bien fonctionné quand il a été décompressé et comment obtenez-vous la variable $ buffer? faites-vous une fopen? –

+0

Le fichier a bien fonctionné avant. C'est un fichier .js. Fait l'en-tête ('Content-type: text/javascript'); être javascript et non css. J'ai de très gros fichiers Js car beaucoup de mon site est Ajax. – Keverw

Répondre

1

Votre fonction compress() semble correcte pour les fichiers CSS, pas JS. C'est ce que j'utilise pour CSS "compress" (y compris jquery-ui et d'autres monstres):

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; 
} 

et fichiers JavaScript celui-ci: https://github.com/mishoo/UglifyJS2 (ou ceci: http://lisperator.net/uglifyjs/#demo)

Je suis sûr qu'il sont d'autres bons outils pour les mêmes tâches, il suffit de trouver ce qui vous convient et l'utiliser.

Questions connexes