Membres


Pas encore membre ?
inscrivez-vous ici

Connexion :
Login
Code
Mot de passe perdu ?
Liste des membres

Pour changer "Un bléme Myspeach"

Pour changer "Un bléme Myspeach"


Pages : 1 [2]

Réponse à : Pour changer "Un bléme Myspeach"     Posté le 10/06/2006 à 09:18
sky
Administrateur
Avatar
Site perso
4185 posts
Inscrit le : 13/08/2003
Après avoir lu http://fr2.php.net/getimagesize/ il semblerai qu'il faudrai encoder les url si jamais y'a des espaces dedans. (avec urlencode)

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Pour changer "Un bléme Myspeach"     Posté le 10/06/2006 à 09:20
3run0
Administrateur
Avatar
1747 posts
Inscrit le : 1/10/2004
Tu l'a trés certainement lu avant php 4.0.5 smiley
Le support des URL a été ajouté en PHP 4.0.5.

_______________________
_ww.gabian-herault.com
 
Réponse à : Pour changer "Un bléme Myspeach"     Posté le 10/06/2006 à 09:21
3run0
Administrateur
Avatar
1747 posts
Inscrit le : 1/10/2004
pour les espaces j'ai pas testé...
edit:
Pour les espaces il faut d'abord revoir la regex qui ne prends compte que de la partie de l'url qui se trouve avant le premier espace :(

_______________________
_ww.gabian-herault.com
 
Réponse à : Pour changer "Un bléme Myspeach"     Posté le 10/06/2006 à 10:18
3run0
Administrateur
Avatar
1747 posts
Inscrit le : 1/10/2004
Voici où j'en suis, le code prends en compte les espaces dans le nom de l'image:

<?php
//hack pour afficher les images quand on fais un lien vers une image
//les extension ok pour afficher une image
$bonExtensions = array('jpg','gif','png');
// l'expression, on fait ce qu'on peut ;)
if(preg_match_all("/(http|https|ftp):\/\/.+[(jpg|gif|png| )$]/i",$_temp[2],$lasorti)){
  
$dataSorti $lasorti[0];

  foreach(
$dataSorti as $idClef=>$dataLien){
    if(
$dataLien!=''){
        
$extension trim(myms_getExtension($dataLien));
        if(
in_array($extension,$bonExtensions)){
    
// encodage des espaces et pas de l'url a cause des //
    
$dataLienE=str_replace(" ","%20",rtrim($dataLien));
    
$size getimagesize($dataLienE);
    if((
$size[0]>50)||($size[1]>50)){
    
$image='<a href="'.$dataLien.'" target="_blank" ><img src="'.$dataLien.'" alt="bad" height="50px" /></a>';
    }else{
    
$image='<img src="'.$dataLien.'" alt="'.$dataLien.'" '.$size[0].'/>';
    }
          
$_temp[2] = str_replace($dataLien,$image,$_temp[2]);
        }else{
          if(
$my_ms['typedelien']=='lien'){$typedelien='LIEN';}else{ $typedelien=$dataLien; }
          
$_temp[2] = str_replace($dataLien,'<a href="'.$dataLien.'" target="_blank">'.$typedelien.'</a>',$_temp[2]);
        }

    }
  }

}
// fin du hack
$_temp[2]=ucfirst($_temp[2]);
?>


_______________________
_ww.gabian-herault.com
 
Réponse à : Pour changer "Un bléme Myspeach"     Posté le 10/06/2006 à 12:13
sky
Administrateur
Avatar
Site perso
4185 posts
Inscrit le : 13/08/2003
excellent smiley
à mettre dans la section trucs et astuces de myspeach !

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Pour changer "Un bléme Myspeach"     Posté le 10/06/2006 à 17:10
MARTS
Membre
Avatar
8 posts
Inscrit le : 22/05/2006
exellent 3run0 smiley
sa fonctionne nickel chrome smiley

_______________________
Programme;programme !!hein!!
 
Réponse à : Pour changer "Un bléme Myspeach"     Posté le 12/06/2006 à 17:07
3run0
Administrateur
Avatar
1747 posts
Inscrit le : 1/10/2004
Voilà le même, mais qui télécharge l'image automatiquement sur le serveur.
1) la fonction myms_getExtension() est suprimmée
2) dans fichier /myspeach/save.php ligne 121
<?php
  $_temp
[2]=$message;

//hack pour telecharger les images quand on fais un lien vers une image
//les extension ok pour afficher une image
$bonExtensions = array('.jpg','.gif','.png');

if(
preg_match_all("/(http|https|ftp):\/\/(.+)(\.[[:alnum:]]{2,4})/si",$_temp[2],$lasorti)){
  
$dataSorti $lasorti[0];

  foreach(
$dataSorti as $idClef=>$dataLien){
    if(
$dataLien!=''){
        if(
in_array($lasorti[3][0],$bonExtensions)){
    
// encodage des espaces et pas de l'url a cause des //
    
$dataLienE=str_replace(" ","%20",rtrim($lasorti[0][0]));
    
// recup du nom d'image
    
$name=strrchr($lasorti[2][0],'/').$lasorti[3][0];
    
$newfile 'saves'.$name;

    if (!
copy($dataLienE$newfile)) {
        
$_temp[2] = str_replace($dataLien"erreur",$_temp[2]);
    }else{
         
$_temp[2] = str_replace($dataLien$my_ms["site"].'/'.$my_ms["repertoire"].'/'.$newfile,$_temp[2]);
    }

    }
  }

}
}
// fin du hack

  
$message=$_temp[2];
?>

2) dans fichier /myspeach/up.php remplacer

<?php 
if($my_ms['typedelien']=='lien'){$typedelien='LIEN';}else{$typedelien='$1';}
$_temp[2]=preg_replace("`((?:https?|ftp)://S+)(s|z)`"'<a href="$1" target="_blank">'.$typedelien.'</a>$2'$_temp[2]);
$_temp[2]=ucfirst($_temp[2]);
?>

par
<?php
//hack pour afficher les images quand on fais un lien vers une image
//les extension ok pour afficher une image
$bonExtensions = array('.jpg','.gif','.png');
// l'expression, on fait ce qu'on peut ;)
if(preg_match_all("/(http|https|ftp):\/\/([[:alnum:]\/\.\-_ ]*)(\.[[:alnum:]]{2,4})/si",$_temp[2],$lasorti)){
  
$dataSorti $lasorti[0];

  foreach(
$dataSorti as $idClef=>$dataLien){
    if(
$dataLien!=''){
        
$extension $lasorti[3][0];
        if(
in_array($extension,$bonExtensions)){
    
// encodage des espaces et pas de l'url a cause des //
    
$dataLienE=str_replace(" ","%20",rtrim($lasorti[0][0]));

    
$size getimagesize($dataLienE);
    if((
$size[0]>100)||($size[1]>50)){
    
$image='<a href="'.$dataLien.'" target="_blank" ><img src="'.$dataLien.'" alt="bad" height="50px" /></a>';
    }else{
    
$image='<img src="'.$dataLien.'" alt="'.$dataLien.'" '.$size[0].'/>';
    }
          
$_temp[2] = str_replace($dataLien,$image,$_temp[2]);
        }else{
          if(
$my_ms['typedelien']=='lien'){$typedelien='LIEN';}else{ $typedelien=$dataLien; }
          
$_temp[2] = str_replace($dataLien,'<a href="'.$dataLien.'" target="_blank">'.$typedelien.'</a>',$_temp[2]);
        }

    }
  }

}

// fin du hack
?>

Avec ces code l'image est telechargée dans le repertoire /myspeach/saves/ et elle est affichée en petit(clicable) si elle est trop grande.

_______________________
_ww.gabian-herault.com
 
Pages : 1 [2]
Vous n'est pas connecté en temps que membre, parceque j'en ai marre du spam, SEUL les membres peuvent poster des messages sur le forum.

Nous  -  Plan du site  -  Informations légale  -  Contact  -  © Graphiks.net