Page 1 sur 1

url tronqué regexe

Posté : 11 janv. 2011, 11:55
par olivxii
bonjour,
sur mon site quand je place un statut il s'affiche sur deux partie, une en "haut" avec le statut et en dessous le "mur", j'ai placer un preg_replace,
dans la partie du haut le lien est cliquable et dans la partie du bas l'url se decoupe et n'est pas cliquable.

en recuperant le code source je voit plusieurs erreurs mais je n'arrive pas a les identifier a savoir si elle proviennent du php, des templates ou des js.
<span class="piece_news_content"><a&nbsp;href="http: google.fr="" target="_blank">http://google.f<br>r</a&nbsp;href="http:></span>
mon preg_replace
$content = preg_replace('`http://[a-z0-9._,/?!&=#-]+`i', '<a href="$0"target="_blank">$0</a>', $content);
tout me semble correct, il n'y a que dans cette deuxieme partie que ca ne marche pas
voir image :

Image

Re: url trounque preg_replace

Posté : 11 janv. 2011, 15:55
par olivxii
j'ai beau fouiller je ne trouve pas, par contre j'ai trouvé un morceau de script js ou il y a les dernieres news ... peut etre le soucis vient de la!!

Code : Tout sélectionner

// Recuperation de l'id de la derniere news publiee last_id = last_news_id; var url = web_adress+ajax_url+"action=get_news&last_news_id="+last_id+"&appel_number="+appel_number+"&filter="+filter; new Ajax.Request(url, { method: 'post', onSuccess: function(transport) { var retour=transport.responseText; var json=eval('(' + retour + ')'); if(json.answer == 'nok'){ affiche(translate('error_text'),'ok'); }else{ //On traite la réponse var html = json.html; //document.getElementById('main_wall').innerHTML = html; //document.getElementById('nb').innerHTML = json.nb_notif; if(json.news != 0){ var exist_html = document.getElementById('main_wall').innerHTML; var html_ok = html + exist_html; document.getElementById('main_wall').innerHTML = html_ok; if (last_news_id != 0) { var div = "main_wall_" + appel_number; new Effect.BlindDown(div); new Effect.Highlight(div, { startcolor: '#e6e6e6',endcolor: '#ffffff',duration:3.0 }); } //maj_cols_height(); } appel_number++; last_news_id = json.last_id; if ((first_id_news == 0) || (json.first_id != 0) && (json.first_id < first_id_news)) first_id_news = json.first_id; } } }); } function maj_last_statute() { var url = web_adress+ajax_url+"action=maj_last_statute"; new Ajax.Request(url, {onSuccess: function(transport) { var retour=transport.responseText; var json=eval('(' + retour + ')'); if (json.answer == "ok") { document.getElementById('actual_statute').innerHTML = json.html; } else { affiche(translate('error_text'),'ok'); } } } ); } function maj_last_statute_profil(user) { var url = web_adress+ajax_url+"action=maj_last_statute_profil&user="+user; new Ajax.Request(url, {onSuccess: function(transport) { var retour=transport.responseText; var json=eval('(' + retour + ')'); if (json.answer == "ok") { document.getElementById('actual_statute2').innerHTML = json.html; } else { affiche(translate('error_text'),'ok'); } } } ); } function maj_four_statute_profil(user) { var url = web_adress+ajax_url+"action=maj_four_status_profil&user="+user; new Ajax.Request(url, {onSuccess: function(transport) { var retour=transport.responseText; var json=eval('(' + retour + ')'); if (json.answer == "ok") { //A REMPLIR for(var i=0; i<4; i++){ var nb = i+1; document.getElementById('last_'+nb+'_photo').innerHTML = json.user_photo; document.getElementById('last_'+nb+'_cont').innerHTML = json.status[i]; document.getElementById('last_'+nb+'_time').style.display = json.displays[i]; document.getElementById('last_'+nb+'_time_cont').innerHTML = json.times[i]; } } else { affiche(translate('error_text'),'ok'); } } } ); }

Re: url trounque preg_replace

Posté : 11 janv. 2011, 16:06
par olivxii
en changeant le preg_replace j'ai plus mon lien de coupé par contre toujours pas cliquable dans la deuxieme partie 'mur'.
$content = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", $content);
par contre toujours cette anomalie d'espace ...
<span class="piece_news_content"><a&nbsp;href="http: google.fr="">http://google.fr&nbsp;</a&nbsp;href="http:></span>
dans le premier a href on remarque qu'il manque //
ensuite j'ai ma fermeture </a> qui se melange avec un href et http .....
ca devient vraiment bizarre j'ai vraiment l'impression que les regex ne passe pas du tout .. ou du moins sur la partie du bas car dans la partie statut tout se deroule bien..

merci de votre aide et de vos idées.

Re: url tronqué regexe

Posté : 11 janv. 2011, 16:13
par stealth35
ils sortent d'où les &nbsp; ?

Re: url tronqué regexe

Posté : 11 janv. 2011, 16:18
par olivxii
je ne sais pas justement ... c'est quand je genere le code source de la page .....

sinon mon regex est correct
$content = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", $content);

Re: url tronqué regexe

Posté : 11 janv. 2011, 16:23
par stealth35
après t'en fait quoi de $content ?

Re: url tronqué regexe

Posté : 12 janv. 2011, 21:19
par olivxii
$content est le url qui' est rentrée pour etre transformée en lien ..

Re: url tronqué regexe

Posté : 17 janv. 2011, 13:54
par olivxii
case 'MAIN' : {
							switch ($type) {
								case 'STATUTE' : {
									$ins_req = "INSERT INTO `".$this->config['bdd_table']
										."statutes`(`user_id`,`text`,`date`) 
										VALUES ('".$owner_id."',' ".$content."','".$date."')";
								      $content = preg_replace('`http://[a-z0-9._,/?!&=#-]+`i', '<a href="$0" >$0</a>', $content);                                       
									}
									
									break;									
								} 
							}