begin process at 2012 05 31 05:12:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

optimisation de script


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

optimisation de script

lundi 7 juin 2004 à 13:15:38 | optimisation de script

MisterV


Bonjour,

j'ai fait un script permettant de traiter le code HTML d'une page avant son envois a l'utilisateur.

ainsi je peux automatiquement ajouter a mes pages des tags pour les liens type email ou URL, ou alors mettre des mots en gras ou autre.

malheureusement mon script ne doit pas etre bien optimiser car il est plutot long a executer, et cela se ressent surtout lorsque le serveur qui l'execute est lent.

Si quelqu'un pouvait donc me conseiller pour optimiser ce code je lui en serais eternellement reconnaissant :p

voici le script :



function callback($buffer)
{
function parser($chaine, $fonction = 'sous_callback')
{
return preg_replace_callback("/(<[^<>]*>)([^<>]+)/", $fonction, $chaine);
}
function address_tags($chaine)
{
$tmp = eregi_replace('(http://[[:alnum:]\._-]+\.[[:alnum:]{2-3}/[[:alnum:]/._-]*)', '<a href="\\1">\\1</a>', $chaine);
$tmp = eregi_replace('([[:alnum:]]+[[:alnum:]\._-]*[[:alnum:]]+@[[:alnum:]]+[[:alnum:]\._-]*[[:alnum:]]+\.[[:alnum:]]{2,3})', '<a href="mailto:\\1">\\1</a>', $tmp);
return ($tmp != $chaine)?$tmp:false;
}
function sous_callback($arg)
{
$arg[2] = html_entity_decode($arg[2], ENT_QUOTES);
$arg[2] = htmlentities($arg[2], ENT_QUOTES);
if(!ereg('title', $arg[1]))
{
$arg2 = false;
if(ereg('(http://|@)', $arg[2]) && !ereg('(http://|@)', $arg[1]))
{
$arg2 = address_tags($arg[2]);
}
if($arg2)
$arg[2] = parser($arg2, 'sous_callback2');
else
$arg[2] = sous_callback2($arg[2]);
}
return $arg[1].$arg[2];
}
function sous_callback2($arg)
{
if(is_array($arg))
{
$tocheck = $arg[2];
$tag = $arg[1];
}
else
{
$tocheck = $arg;
$tag = '';
}
if(!ereg('(http://|@)', $tocheck))
{
foreach($GLOBALS['abbr'] as $key=>$val)
{
$key = html_entity_decode($key, ENT_QUOTES);
$val = html_entity_decode($val, ENT_QUOTES);
$key = htmlentities($key, ENT_QUOTES);
$val = htmlentities($val, ENT_QUOTES);
$tocheck = ereg_replace('([[:space:][:punct:]]|^)('.$key.')([[:space:][:punct:]]|$)', '\\1<acronym title="'.$val.'">\\2</acronym>\\3', $tocheck);
}
foreach($GLOBALS['SpWords'] as $key=>$val)
{
$key = html_entity_decode($key, ENT_QUOTES);
$key = htmlentities($key, ENT_QUOTES);
$tocheck = eregi_replace('([[:space:][:punct:]]|^)('.$key.')([[:space:][:punct:]]|$)', '\\1<span class="'.$val.'">\\2</span>\\3', $tocheck);
}
}
return $tag.$tocheck;
}

$top = ($GLOBALS['HTML_Structure'] == 'normal')?setUsualHTMLPage():setSpecialHTMLPage();
$bot = ($GLOBALS['HTML_Structure'] == 'normal')?showUsualEnd():showSpecialEnd();
$buffer = $top.$buffer.$bot;

$titre = showTitre();
$buffer = str_replace('<%-----TITRE-----%>', $titre, $buffer);

return parser($buffer);
}


les effets de cette fonction :

- ajoute le debut de la page HTML en fonction de la structure choisie
- ajoute la fin de la page HTML en fonction de la structure choisie
- remplace le tag <%-----TITRE-----%> par la valeur que doit avoir le titre

- recherche dans les textes hors tags differentes choses :
- les URL et les emails (ajoutes les tags pour les liens)
- les caracteres speciaux (les traduit en entités HTML)
- des abbreviations (definies dans un tableau $GLOBALS['abbr'])
- des mots pour les mettre en gras par exemple (definis dans un tableau $GLOBALS['SpWords'])


Merci d'avance.
lundi 7 juin 2004 à 13:28:56 | code un peu mieux presenté

MisterV


voici un lien vers le code un peu mieux presenter, pour simplifier la lecture :

http://www.phpcs.com/code.aspx?ID=23475

lundi 7 juin 2004 à 13:34:21 | Re : optimisation de script

eax

si ton server rame, change le va sur n-serv.com

Sylvain [email] [homepage] [myCV]


Cette discussion est classée dans : html, key, alnum, arg, ent


Répondre à ce message

Sujets en rapport avec ce message

php et html [ par Vinz ] Salut,Voila, j'utilise un formulaire qui me lance un php. Dans ce formulaire j'ai un .Mon probleme c'est que j'arrive pas a recuperer la valeur de mon Je veux bloquer le html [ par Azerty ] je fait un petit livre d'or MySQL en se moments mais j'ai un probléme : il faut que je bloque le html (balise style /<.noscript etc) enfin bon j'ai es form->php->html [ par BigZoo ] voilà mon pb:j'ai un fichier html en destination avec une structure bien définie et je veux, à partir d'un formulaire dans lequel je mets du texte, de html ep php [ par manueg ] Bonjour, je débute en déve PHP et je me pose les questions suivantes....J'utilise Dreamweaver et EasyPHP et ApacheMon approche est la suivante: je fai envoyez un mial en HTML [ par g0belin ] Que faut t'il utiliser pour envoyer un mail en HTML??? fusion php-html-mysql : votre avis ? [ par skrol29 ] Bonjour,Je suis en train de terminer une classe PHP pour la fusion de page HTML avec variables PHP et données MySQL.Le principe : une page HTML modèle ouverture d'une page html en php [ par Ethan00000 ] Comment peut on ouvrir une page html avec internet explorer sans la barre d'adresse et la barre standardMerci probleme de chemin !!! [ par Xime ] bonjour :)voila g des problemes pour l'affichage des pages html et php, j'aurais voulu savoir ce que vous utilisez pour ouvrir les pages pour exemple executer un script php dans une pages html [ par titiseb ] Bonjour je voudrait executer un sctipt php dans une pages html c possible ??merci @+titi seb Formulaire d'envoi de mail en HTML [ par slhuilli ] Bonjour,Je suis a la recherche d'un script (PHP si possible) pour pouvoir écrire des mails au format HTML (gestion des gras, souligné et italique ains


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales