POP Doc Retour vers le futur

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
Sujet verrouillé

Problème parseur PHP

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:
http://legeekcafe.com

en :
Code:
<a href="http://legeekcafe.com">http://legeekcafe.com</a>

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

il me transforme en
Code:
<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:
<a href="http://www.apprendre-php.com/">Test</a>

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

Voici mon code :
Code:
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;
}

21 Juil 2011, 11:22

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

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


Tout devrait mieux se passer ensuite.

21 Juil 2011, 12:51

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

et encore mieux
Code:
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.

21 Juil 2011, 18:22

J'ai trouvé ce code pas tu tout optimiser. Comment l'optimiser ?
Code:
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;
}

21 Juil 2011, 19:37

Image

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...

22 Juil 2011, 07:58

Les 2 posts de zOrg : :a12: :lol:

22 Juil 2011, 16:11

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

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


Tout devrait mieux se passer ensuite.


:a12:
Sujet verrouillé

 

Lego Retour vers le futur


 

The end


 

POP Marty 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.