The end

 

Problème parseur PHP

Vous connaissez un site pour acheter des hoverboards à moitié prix ? Partagez le ici...
⮕⮕⮕ EN COURS : archivage du forum ici https://www.youtube.com/@retourverslefutur.com-archive

Problème parseur PHP

Postpar qwerty » 21 Juil 2011, 10:20

Bonjour,
J'ai un problème avec mon parseur d'URL. En effet, cette fonction permet de transformer par exemple :
Code: Tout sélectionner
http://legeekcafe.com

en :
Code: Tout sélectionner
<a href="http://legeekcafe.com">http://legeekcafe.com</a>

Pour l'instant, tout marche. Mais quand j'écris :
Code: Tout sélectionner
<a href="http://www.apprendre-php.com/">http://www.apprendre-php.com/</a>

il me transforme en
Code: Tout sélectionner
<a href="%3Ca%20href=" http:="" www.apprendre-php.com="" "="">http://www.apprendre-php.com/</a>"><a href="http://www.apprendre-php.com/">http://www.apprendre-php.com/</a>


et
Code: Tout sélectionner
<a href="http://www.apprendre-php.com/">Test</a>

en
Code: Tout sélectionner
<a href="%3Ca%20href=" http:="" www.apprendre-php.com="" "="">http://www.apprendre-php.com/</a>">Test

Voici mon code :
Code: Tout sélectionner
function bbCode($t)
// remplace les balises BBCode par des balises HTML
{
   //lien
   $t = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $t);
    $t = preg_replace('#https://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $t);
    $t = preg_replace('#ftp://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $t);


   return $t;
}
1,21 gigawatt !
Vous dites que vous avez fabriqué une machine à voyager dans le temps... à partir d'une Delorean ?
Salut, si t'est nouveau, présente toi ici Bienvenue
Moteur de recherche bttf
Avatar de l’utilisateur
qwerty
Hoverboarder professionnel
 
Posts: 2180
Inscription: 09 Juin 2010, 16:00
Localisation: Quelque part entre le passé et le futur.

Postpar zOrg » 21 Juil 2011, 11:22

Je te conseille vivement d'intégrer ce code :
Code: Tout sélectionner
Faire un foot avec des potes, aller à la plage, sortir

et encore mieux
Code: Tout sélectionner
Prendre contact avec le sexe opposé


Tout devrait mieux se passer ensuite.
Avatar de l’utilisateur
zOrg
Pro de la Gachette
 
Posts: 4456
Inscription: 14 Oct 2004, 21:45

Postpar qwerty » 21 Juil 2011, 12:51

zOrg a écrit:Je te conseille vivement d'intégrer ce code :
Code: Tout sélectionner
Faire un foot avec des potes, aller à la plage, sortir

et encore mieux
Code: Tout sélectionner
Prendre contact avec le sexe opposé


Tout devrait mieux se passer ensuite.

J'aime pas le foot, la place est a 300km de chez moi et il pleut. Pour le sexe opposé, c'est elle qui me repousse.
1,21 gigawatt !
Vous dites que vous avez fabriqué une machine à voyager dans le temps... à partir d'une Delorean ?
Salut, si t'est nouveau, présente toi ici Bienvenue
Moteur de recherche bttf
Avatar de l’utilisateur
qwerty
Hoverboarder professionnel
 
Posts: 2180
Inscription: 09 Juin 2010, 16:00
Localisation: Quelque part entre le passé et le futur.

Postpar qwerty » 21 Juil 2011, 18:22

J'ai trouvé ce code pas tu tout optimiser. Comment l'optimiser ?
Code: Tout sélectionner
function bbcode($t)
{
   $t = parselien($t);
   return $t;
}
// Parser Liens
function parselien($text)
{
   $ret = ' ' . $text;
   $ret = preg_replace_callback("!(^|[\n ])(https?://[^ \"\n\r\t<]*)!is", "regexp_http", $ret);
   $ret = preg_replace_callback("!(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)!is", "regexp_http", $ret);
   $ret = preg_replace_callback("!(^|[\n ])([a-z0-9&\-_.\S]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)!i", "regexp_mail", $ret);
   $ret = preg_replace_callback("!(^|[\n ])(ftp?://[^ \"\n\r\t<]*)!is", "regexp_ftp", $ret);
   $ret = substr($ret, 1);
   return($ret);
}

function shorten($value, $length = 50)
{
   if (strlen($value) > $length) {
   return substr($value , 0, 35 ) . '...' . substr($value , -15);
   }
   else {
   return $value;
   }
}

function regexp_http($value, $http = '', $end = '')
{
   if (!preg_match("!^http!", $value[2]))
   $http = 'http://';
   if (preg_match("!([\.,\?\!]+)$!", $value[2], $match))
   {
   $end = $match[1];
   $value[2] = preg_replace("!([\.,\?\!]+)$!", "", $value[2]);
   }
   return $value[1] . '<a href="' . $http . $value[2] . '">' . $value[2] . '</a>' . $end;
}

function regexp_ftp($value, $ftp = '', $end = '')
{
   if (!preg_match("!^ftp!", $value[2]))
   $ftp = 'ftp://';
   if (preg_match("!([\.,\?\!]+)$!", $value[2], $match))
   {
   $end = $match[1];
   $value[2] = preg_replace("!([\.,\?\!]+)$!", "", $value[2]);
   }
   return $value[1] . '<a href="' . $ftp . $value[2] . '">' . $value[2] . '</a>' . $end;
}

function regexp_mail($value, $end = '')
{
   if (preg_match("!([\.,\?\!]+)$!", $value[2], $match))
   {
   $end = $match[1];
   $value[2] = preg_replace("!([\.,\?\!]+)$!", "", $value[2]);
   }
   return $value[1] . '<a href="mailto:' . $value[2] . '@' . $value[3] . '">' . $value[2] . '@' . $value[3] . '</a>' . $end;
}
1,21 gigawatt !
Vous dites que vous avez fabriqué une machine à voyager dans le temps... à partir d'une Delorean ?
Salut, si t'est nouveau, présente toi ici Bienvenue
Moteur de recherche bttf
Avatar de l’utilisateur
qwerty
Hoverboarder professionnel
 
Posts: 2180
Inscription: 09 Juin 2010, 16:00
Localisation: Quelque part entre le passé et le futur.

Postpar zOrg » 21 Juil 2011, 19:37

Image
Avatar de l’utilisateur
zOrg
Pro de la Gachette
 
Posts: 4456
Inscription: 14 Oct 2004, 21:45

Postpar Manu_Marty » 21 Juil 2011, 22:20

Je t'aurais bien aidé mais la dernière fois que j'ai codé en PHP ça date d'il y a deux ans et je suis loin d'être un expert... :d02: Mais là à vu d'oeil je vois pas ça a l'air d'être une fonction classique pourtant...
Avatar de l’utilisateur
Manu_Marty
Pompiste chez Texaco
 
Posts: 314
Inscription: 15 Avr 2007, 11:45
Localisation: Poitiers(86)

Postpar Gatien » 22 Juil 2011, 07:58

Les 2 posts de zOrg : :a12: :lol:
Avatar de l’utilisateur
Gatien
Lecteur de Playboy
 
Posts: 1147
Inscription: 21 Jan 2010, 14:08
Localisation: Normandie

Postpar strickwood » 22 Juil 2011, 16:11

zOrg a écrit:Je te conseille vivement d'intégrer ce code :
Code: Tout sélectionner
Faire un foot avec des potes, aller à la plage, sortir

et encore mieux
Code: Tout sélectionner
Prendre contact avec le sexe opposé


Tout devrait mieux se passer ensuite.


:a12:
Avatar de l’utilisateur
strickwood
Vendeur chez Blast From the Past
 
Posts: 503
Inscription: 03 Fév 2008, 01:43


Retourner vers Internet / Informatique

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 59 invités



Lego Retour vers le futur

POP Doc Retour vers le futur

Playmobil Retour vers le futur

Retourverslefutur.com participe au Programme Partenaires d’Amazon EU, un programme d’affiliation publicitaire conçu pour permettre à des sites de percevoir une rémunération grâce à la création de liens vers Amazon.fr.


Road and Trip, voyages et road-trip à travers le monde