Affichage des liens en double php

bonjour,
voila j'ai un resultat qui s'affiche du genre si je tape https://www.google.fr/?gws_rd=ssl il s'affiche en double.

j'ai donc tester comme suit :

$statut_resize = $this->correct_news(utf8_encode(stripslashes($this->content)),65,$size_pseudo);
$statut_resize = preg_replace('#http://[a-z0-9._/-?]+#i', '<a href="$0">$0</a>',$statut_resize);
$html .= "<span class='piece_news_content'>".$statut_resize."</span>";


le resultat a l'affichage me donne :

https://www.google.fr/?gws_rd=ssl">https://www.google.fr/?gws_rd=ssl 


il m'affiche 2 liens cliquables mais seul le premier fonctionne bien le deuxieme se fini par </a>.

10 réponses

  1. essaye ceci voir
    $statut_resize = $this->correct_news(utf8_encode(stripslashes($this->content)),65,$size_pseudo);
    
    $statut_resize = preg_replace(".*(/http://[^\s]+).*/i", "<a href=\"$1\">$1</a>",$statut_resize);
    $html .= "<span class='piece_news_content'>".$statut_resize."</span>";
    1. alors j'ai testé ton code mais je n'est plus du tout d'affichage des news ce coup ci ...
      1. sorry c:
        $statut_resize = preg_replace("(/http://[^\s]+)/i", "<a href=\"$1\">$1</a>",$statut_resize);
        
        
    2. alors j'ai rajouté un target'_blank' pour ouvrir dans une autre page,
      j'ai bien qu'un seul lien cliquable mais avec des bout de codes...

      https://www.google.fr/?gws_rd=ssl " target='_blank'>https://www.google.fr/?gws_rd=ssl">https://www.google.fr/?gws_rd=ssl 
      1. copie moi la valeur initiale de $statut_resize avant l'utilisation de la fonction : correct_news

        PS: pense a utiliser les tag losque tu postes un code, sinon c'est illisible.
    3. en faite le code initial est :

      case 'STATUTE' : {
      					if ($user_ID == $this->concerned_id) {
      						$html .= "<div class='news' id='news_".$this->id."' 
      							onmouseover=\"document.getElementById('suppr_news_".$this->id
      								."').style.display='inline';\"
      							onmouseout=\"document.getElementById('suppr_news_".$this->id
      								."').style.display='none';\">";
      					} else {		
      						$html .= "<div class='news' id='news_".$this->id."'>";
      					}
      					
      				
      					$html .= ' <img alt="photo_user" class="news_photo"
      						src="'.$config['site_url'].'devoliarsed-img.php?img='.$owner->get_photo_profil()
      								.'&width=60&height=60&mode=crop"/>';
      					
      					$html .= "<div class='piece_news'>";	
      						$html .= "<strong><a  href=\"profil-".$owner->get_id().".html\">".$owner->get_firstname()." "
      							.$owner->get_name()."</a></strong> : ";
      						
      						$size_pseudo = strlen($owner->get_firstname()." ".$owner->get_name()." : ");
      						$statut_resize = $this->correct_news(utf8_encode(stripslashes($this->content)),65,$size_pseudo);
      						
                              $html .= "<span class='piece_news_content'>".$statut_resize."</span>";
      						 
      
      
      						$html .= '<br/><br/><span class="piece_news_date">'.$this->get_delay($this->date).'</span>';
      						
      					
      						$html .= ' . <a 
      							onclick="if (document.getElementById(\'comForm_'.$this->get_id().'\').style
      								.display == \'block\') {
      							document.getElementById(\'comForm_'.$this->get_id().'\').style.display = \'none\'; }
      							else {document.getElementById(\'comForm_'.$this->get_id().'\').style
      								.display = \'block\';
      								document.getElementById(\'idCom_'.$this->get_id().'\').focus()}">
      							Comment</a><br/>';
      							
      						$html .= '<div id=com_'.$this->id.' style="display:inline-block;">'
      							.$this->get_comments_html().'</div>';
      							
      						$html .= '<form id="comForm_'.$this->id.'" class="com_form">
      									<textarea id="idCom_'.$this->id.'" cols="68" rows="1"></textarea><br/>';
      						$html .= '<input type="button" value="'.$xml->comment_text.'" 
      									onclick="send_com('.$this->id.',\''.$this->wall_type.'\')"/>
      									</form></div>';	
      
      						$html .= '<div id="suppr_news_'.$this->id.'" class="supp_news">
      									<strong><a onclick="suppr_news('.$this->id.',\''.$this->wall_type.'\',
      									\''.$this->wall_owner.'\')">
      									<img src="'.$this->config['site_url'].
      										'devoliarsed-custom/themes/'.$this->config['theme'].'/images/close.png" alt="suppr"/>
      									</a></strong>
      								</div>';
      						
      						$html .= "</div>";
      						
      					$html .= "</div>";
      							
      					break;
      				}


      dans ce cas si le lien ou l'url s'affiche sans etre cliquable, c'est pour cela que je rajoute un preg_replace pour que le resultat soit cliquable.
      1. voici mon conseil:

        fais ceci et poste moi le resultat

        
        echo $statut_resize;
        echo "<br>------------------------------------------<br>";
        $statut_resize = $this->correct_news(utf8_encode(stripslashes($this->content)),65,$size_pseudo);
        echo $statut_resize;
        echo "<br>------------------------------------------<br>";
        
        $statut_resize = preg_replace("/(http:[^\s]+)/i", "<a href=\"$1\">$1</a>",$statut_resize);
        
        
        echo $statut_resize;
        echo "<br>------------------------------------------<br>";
        $html .= "<span class='piece_news_content'>".$statut_resize."</span>";
        
        
        
        
        
        1. j'ai fais comme tu ma dit mais c'est pareil ca me retire tout l'affichage des news.

          	$html .= "<div class='piece_news'>";	
          						$html .= "<strong><a  href=\"profil-".$owner->get_id().".html\">".$owner->get_firstname()." "
          							.$owner->get_name()."</a></strong> : ";
          						
          						$size_pseudo = strlen($owner->get_firstname()." ".$owner->get_name()." : ");
          						echo $statut_resize;
                                  echo "<br>------------------------------------------<br>";
                                  $statut_resize = $this->correct_news(utf8_encode(stripslashes($this->content)),65,$size_pseudo);
                                  echo $statut_resize;
                                  echo "<br>------------------------------------------<br>";
                                  $statut_resize = preg_replace("/(http:[^\s]+)/i", "<a href=\"$1\">$1</a>",$statut_resize);
                                  echo $statut_resize;
                                  echo "<br>------------------------------------------<br>";
                                  $html .= "<span class='piece_news_content'>".$statut_resize."</span>";


          en faite j'ai vu que des que l'on place un echo sa m'empeche l'affichage ..
          1. bizarre mais c'est plutot le resultat que je voulais examiner, pas le code.
            est ce que la page est online?
        2. bon en cherchant bien j'ai trouvé mon erreur, j'avais un autre preg_replace sur la case statut plus haut dans mon code, je l'ai supprimé et tout fonctionne ...

          maintenant je cherche a afficher des videos type youtube, daylimotion directement sur le mur avec une miniature.
          a tu une idée