Notice: Undefined index: position in /home/piregwan/public_html/forum2/reponses2.php on line 50
Piregwan 2000



  04 06 2002 � 21:41


Bonjour,

Je bute sur un probleme. Comment couper un texte et a la fois mettre un lien?

> Couper le texte :
$message = eregi_replace("^(. {10} )(.*)" ,"\\1..." , $message);

> Faire un lien :
$message = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[ :alnum:]#?/&=])",
" <A HREF=\"\\1://\\2\\3\"> \\1://\\2\\3 </A> ",$message);

Le seul probleme, c'est qu'il coupe mon l'url egalement et donc le lien est faux! J'aimerai qu'il coupe le lien, mais pas l'url...

Merci de l'eclairer.

cobalt
cobalt@voila.fr

cet espace n'est pas � vendre !





  05 06 2002 � 02:52


ben essaie,

eventuellement de mettre 2 fois ton lien sur le texte coup� !!

1 lien sur un morceau et un autre sur l'autre morceau !!!

TafKaP (mickey - )
58 ans (Lyon)
webmaster@lalogotheque.com | 106481997
http://www.lalogotheque.com

cet espace est � vendre ! mise � prix � 142�





  05 06 2002 � 06:50


Ben disons que c'est un peu normal:

Si ta fonction de cesure est mal param�tr�e, ca va couper tes URL, c�d que tu laisse pas assez de place (de caract�res) pour que l'url soit interpr�t�e.

Utilises plutot une fonction comme ca, ou tu peut toi meme d�finir la longueur maximale de la cesure:

function cutLines($string,$length='40',$separation=' ')
{
return preg_replace('/([^ ] {'.$length.'} )/si','\\1'.$separation,$string);
}

TU voit que la, par d�faut, la cesure se fait tous les 40 caract�res, mais bon, on sait jamais, moi je mets une cesure � 70 caract�res. ( donc, tjrs un problemes avec les liens de plus 70 caracteres: avec un num�ro de session �n�rme, par exmple)

Ensuite, c'est quand tu parses tes URLs que le truc se joue: la aussi, tu doit d�finir une longueur MAXIMUM d'affichage, sous peine de voir un lien te p�ter ta mise en page.


function url_parse($tmp_url="") {

$max_url=30;
$max_aff=22;
$symbol="...";

preg_match_all("/http:\/\/([_a-zA-Z0-9-.\/]+)/si", $tmp_url, $url_array);
for($i=0;$i <count($url_array[0]);$i++)
{
if($url_done[$url_array[0][$i]]!="done")
{

strlen($url_array[0][0])> $max_url ? $temp2=substr($url_array[0][0],0,$max_aff).$symbol : $temp2=$url_array[0][0] ;
$tmp_url = ereg_replace( $url_array[0][$i], " <A HREF=\"".$url_array[0][$i]."\" target=\"_blank\"> ".$temp2." </A> ", $tmp_url );
$url_done[$url_array[0][$i]] = "done";
}
}
preg_match_all("/[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)* @[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)/si", $tmp_url, $email_array);
for($i=0;$i <count($email_array[0]);$i++)
{
$tmp_url = ereg_replace( $email_array[0][$i], " <A HREF=\"mailto:".$email_array[0][$i]."\"> ".$email_array[0][$i]." </A> ", $tmp_url );
}
return $tmp_url;
}

Cette deuxieme fonction parse les HTTP: et les liens MAIL (style ***@***.***) ( tu peut la modifier pour qu'elle accepte aussi les FTP: )

Si tu regarde au d�but de cette fonction, tu voit les 2 variables qui g�rent l'affichage: $max_url est la longueur maximale autoris�e pour une URL, et $max_aff est la longueur de l'URL � l'affichage.
En gros, si la fonction trouve une URL sup�rieure � 30 car., ca la coupe � 22 caract�res et lui rajoutes $symbol ( les fameux "..." ^^ ).

A toi de jouer avec les param�tres ensuite, pour un bon affichage selon la longueur de tes champs d'affichage !!!!



Yop !

Steve Austin (guest star fanatique lvl 1 - )
50 ans (Marseilleeuh !)
kohai@kohaistyle.com
http://www.kohaistyle.com

Hein ?? koi ??? ah ca ... ouais bof ! ( pffff ... non mais vraiment ... )





  05 06 2002 � 16:05


Je vais peut etre paraitre con, mais la variable du message, on la place ou?

Merci ^^

Warning: A non-numeric value encountered in /home/piregwan/public_html/forum2/afficher_bannieres.php on line 314



cet espace est � vendre ! mise � prix � 0�





  05 06 2002 � 16:34


Ahlala ... un peu de jugeotte, que diable !!!

Pour la fonction cutlines:

$message=cutLines($message,70,' ')

C�d: coupe moi les lignes de $message tous les 70 caract�res, et tu rajoutes un espace ! Apr�s fout le contenu dans la variable $message.

Pour la fonction url_parse:

$message=url_parse($message)
C�d: Parse moi les URL dans la varible $message.
Je sais, je suis faignasse, j'ai mis les param�tres dans l'appel de la fonction. Mais je pense que tu peut le faire de toi meme, non ??? Ou alors, modifie directement
les variables $max_url, $max_aff, $symbol.


Steve Austin (guest star fanatique lvl 1 - )
50 ans (Marseilleeuh !)
kohai@kohaistyle.com
http://www.kohaistyle.com

Hein ?? koi ??? ah ca ... ouais bof ! ( pffff ... non mais vraiment ... )





  05 06 2002 � 18:17


j'essaie, et je te dis.

Warning: A non-numeric value encountered in /home/piregwan/public_html/forum2/afficher_bannieres.php on line 314



cet espace est � vendre ! mise � prix � 0�





  06 06 2002 � 15:06


salut

un autre moyen pour simplifier grandement le dev par la suite, c'est aussi d transformer ta chaine (g�n�ralement une phrase) en un tableau de mots. un mot est une suite de caract�res pr�c�d� et suivi d'un espace. fonction EXPLODE() tr�s pratique

par la suite, tu peux facilement identifer un mot classique des autres (mots commencant par http ou contenant un @). a partir de l�, tu appliques un traitement sp�cifique selon le type de mot rencontr�. ouala.

les fonctions de kohai semblent tr�s sympathiques aussi

bonne continuation a+

pg

piregwan (agent mad fanatique lvl 1 - )
49 ans (chamb�ry, 73)
krakoukas@piregwan-genesis.com | 91327470
http://www.piregwan-genesis.com

" s'il vous plait mademoiselle, j'aurais voulu prendre une le�on particuli�re avec anne laurencin " JCD


Pour r�pondre � ce sujet (et notifier automatiquement son auteur), cliquez sur le bouton REPONDRE A CE SUJET. Si vous voulez en plus avertir de votre r�ponse une personne qui a particip� � ce sujet, cliquez sur le bouton en face de son intervention. Enfin si vous voulez inviter quelqu'un � r�agir, utilisez les appeaux ci-dessous. Seuls les membres logu�s peuvent utiliser les appeaux et seuls les membres actifs peuvent �tre appeaut�s ^^. Bonne notification !

Vous n'�tes pas membre ou vous n'�tes pas logu�(e) ou les appeaux sont d�sactiv�s dans votre profil. Vous ne pouvez pas utiliser les appeaux.