IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

aide au remplacement d'un ereg_replace


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Points : 43
    Points
    43
    Par défaut aide au remplacement d'un ereg_replace
    bonjour,

    Quelqu'un aurait la gentillesse de m'aider à réécrire cette synthaxe devenue depreciated à cause du ereg_replace et du eregi_replace ? Je sais pas où insérer les délimiteurs dans ce type de formule ni si je dois modifier des trucs. merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    for ($i=1;$result && $row=mysql_fetch_array($result);$i++)
    {  
        $date=mysql2date($row[date]);
     
        $nomfic=SITEDIRROOT . '/' . IMAGESDIR . "/" . $row[fichier];
        $ext=strtolower(strstr($nomfic,"."));
        $nomficv = eregi_replace($ext, "-thb".$ext,$nomfic);
     
        if ($ficv=glob($nomficv))
        {  
     
            $LVIG=120;
            $HVIG=90;
            $cell=160;
     
            $nomficv=ereg_replace(SITEDIRROOT . '/' . IMAGESDIR . '/',"",$ficv[0]);
            $dimv=getimagesize($ficv[0]);

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Normalement, un ereg_replace se remplace par un preg_replace et un eregi_replace par un preg_replace avec un pattern portant le modificateur i.
    Cela étant, as-tu réellement besoin d'une regex ? J'ai l'impression que tu ne cherches pas de motif, mais une simple chaine. Auquel cas, un str_replace pour ereg_replace et un str_ireplace pour eregi_replace pourraient suffire.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ +1 pour Celira. Pas besoin de regex ici.

    2/
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $ext=strtolower(strstr($nomfic,"."));
    Ce n'est pas comme ça non plus qu'on trouve l'extension d'un fichier.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $ext = strtolower(pathinfo($nomfic,PATHINFO_EXTENSION));

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Points : 43
    Points
    43
    Par défaut
    merci pour vos réponses, j ai essayé le remplacement comme indiqué par Celira mais ça change rien. Ce code génère l affichage en miniature des images du site dans mon admin. Mais les miniatures -thb ne s'affichent pas car le chemin généré par le code n est pas bon. Le chemin affiché est http://www.nomdusite.com/images//var...ages/photo.jpg
    au lieu de http://www.nomdusite.com/images/photo-thb.jpg

    Je viens de transférer le site créé à la base pour php4 d'un vieux serveur OVH Gentoo (php5) vers un nouveau OVH CentOS (php5.3.3) . Avant tout marchait très bien. Du coup je suis obligé de moderniser le code apparemment et je présume que les erreurs viennt des ereg_replace non reconnus par php5.3.3. Mais là je bloque car c est de la syntaxe nouvelle pour moi

    Voici le code complet de l'index.php de la page qui gère les photos de l'admin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    <html>
    <head>
    <title><? echo $lang[0]; ?></title>
    </head>
    <body onContextMenu="return true">
    <form name="form" method="post" action="">
    <link href="../style.css" rel="stylesheet" type="text/css">
    <link href="../style_inputtext.css" rel="stylesheet" type="text/css">
    <script language="JavaScript" src="../fonctions.js"></script>
    <script language="JavaScript" src="fonctions.js"></script>
    <script language="JavaScript">
    <!--
    if (top.location.href == self.location.href) window.location.href = 'frames.php';
    //-->
    </script>
     
    <h3 align=center><? echo $lang[0]; ?></h3>
     
    <p align=center class=10><a href="photos_form.php?act=0" OnClick="photos_form=open_photos_form('');" target="photos_form"><? echo $lang[11]; ?></a></p>
     
    <?
    if ($_GET[act]==2 && isset($_GET[pid]))
    {
    	$sql="SELECT count(photo_id) as compte FROM $tables[news_photos] WHERE photo_id=".$_GET[pid];
    	$result=mysql_query($sql);
    	$row0=mysql_fetch_array($result);
     
    	$sql="SELECT count(photo_id) as compte FROM $tables[videos_photos] WHERE photo_id=".$_GET[pid];
    	$result=mysql_query($sql);
    	$row1=mysql_fetch_array($result);
     
    	$compte=$row0[compte]+$row1[compte];
     
    	if ($compte==0)
    	{
    		$sql="SELECT * FROM $tables[photos] WHERE photo_id='$_GET[pid]'";
    		$result=mysql_query($sql);
    		if ($del=mysql_fetch_array($result))
    		{
    			$nomfic=$del[fichier];
    			$ext=strtolower(strstr($nomfic,"."));
    			$fichierr=SITEDIRROOT . '/' . IMAGESDIR . "/" . $nomfic;
    			$fichierv=SITEDIRROOT . '/' . IMAGESDIR . "/" . eregi_replace($ext, "-thb".$ext,$nomfic);
     
    			delete($fichierr);
    			delete($fichierv);		
     
    			$sql="DELETE FROM $tables[photos] WHERE photo_id='$_GET[pid]'";
    			$result=mysql_query($sql);
    		}
    	}
    	else 
    	{ 
    		$erreurs[]=$msg_lang[20]; 
    		echo js_errors($erreurs); 
    	}
    }
     
     
     
    $col=5;
    $lig=10;
    $par_page=bcmul($col,$lig);
    if (!isset($_GET[p])) $p=1;
    else $p=$_GET[p];
    $debut=($p-1)*$par_page;
     
    $sql="SELECT * FROM $tables[photos]";
    $result=mysql_query($sql); 
     
    $nb_photos=mysql_num_rows($result);
    $nb_pages=ceil($nb_photos/$par_page);
     
    if ($nb_pages>1)
    {
    	$str_pages="Pages : ";
    	for ($i=1;$i<=$nb_pages;$i++)
    	{
    		if ($i!=$p) $str_pages.="<a href=\"?p=$i\">$i</a> ";
    		else $str_pages.=" $i ";
    	}
    }
     
    $sql="SELECT * FROM $tables[photos] ORDER BY date DESC LIMIT $debut,$par_page";
    $result=mysql_query($sql); 
     
    echo "<p align=center>$str_pages&nbsp;</p>";	
     
    ?>
    <table border="0" align="center" cellpadding="0" cellspacing="0" class=TABLEBORDER width="70%">
    <tr>
    <td><? // bordure ?><table width="100%" border=0 cellspacing=1 cellpadding=3 align=center>
     
    <?
     
     
     
    for ($i=1;$result && $row=mysql_fetch_array($result);$i++) 
    {	
    	$date=mysql2date($row[date]);
     
    	$nomfic=SITEDIRROOT . '/' . IMAGESDIR . "/" . $row[fichier];
    	$ext=strtolower(strstr($nomfic,"."));
    	$nomficv = eregi_replace($ext, "-thb".$ext,$nomfic);
     
    	if ($ficv=glob($nomficv)) 
    	{	
     
    		$LVIG=120;
    		$HVIG=90;
    		$cell=160;
     
    		$nomficv=str_replace(SITEDIRROOT . '/' . IMAGESDIR . '/',"",$ficv[0]);
    		$dimv=getimagesize($ficv[0]);
     
     
    		if ($dimv[0]>$dimv[1])
    		{
     
    			if ($dimv[0]!=$LVIG || $dimv[1]!=$HVIG) $badthb="<a href=\"recadrer_form.php?pid=$row[photo_id]\" OnClick=\"recadrer_form=open_photos_form('recadrer_form.php?pid=$row[photo_id]');\" target=\"photos_form\"><img src=\"". WWWROOT .  "/" . IMAGESDIR ."/warning.gif\" alt=\"".$msg_lang[22]."\" align=absmiddle border=0></a>";
    			else $badthb="";
    		}
     
    		if ($dimv[0]<$dimv[1])
    		{
    			if ($dimv[0]!=$HVIG || $dimv[1]!=$LVIG) $badthb="<a href=\"recadrer_form.php?pid=$row[photo_id]\" OnClick=\"recadrer_form=open_photos_form('recadrer_form.php?pid=$row[photo_id]');\" target=\"photos_form\"><img src=\"". WWWROOT .  "/" . IMAGESDIR ."/warning.gif\" alt=\"".$msg_lang[22]."\" align=absmiddle border=0></a>";
    			else $badthb="";
    		}		
    	}
    	$dimv[0]=$dimv[0]/2;
    	$dimv[1]=$dimv[1]/2;
    	$tablo.="<td align=center><img src=\"". SITEWWWROOT . '/' . IMAGESDIR . '/' . $nomficv . "\" alt=\"$row[titre] $row[description]\" width=\"$dimv[0]\" height=\"$dimv[1]\" class=\"thb\"><div>$badthb <a href=\"photos_form.php?act=1&pid=$row[photo_id]\" OnClick=\"photos_form=open_photos_form('');\" target=\"photos_form\"><img src=\"../images/editer.gif\" border=0 alt=\"$bt_lang[1]\"></a> <a href=\"?act=2&pid=$row[photo_id]\" OnClick=\"if (confirm('$msg_lang[3]')) return true; else return false;\"><img src=\"../images/supprimer.gif\" border=0 alt=\"$bt_lang[2]\"></a></div></td>";
     
    	if (bcmod($i,$col)==0) $tablo.="</tr>\n<tr class=TABLEDATA1 height=$cell>";
     
    }
     
    	$tablo.="</tr></table>";
    	$tablo=ereg_replace("<tr class=TABLEDATA1 height=$cell></tr>","",$tablo);
    	$tablo="<table border=0 width=100%><tr class=TABLEDATA1 height=$cell>".$tablo;
    	echo $tablo;
     
     
    ?>
    </table><? // bordure ?></td>
    </tr>
    </table>
     
    <? echo "<p align=center>$str_pages&nbsp;</p>"; ?>
     
    <p align=center class=10><a href="photos_form.php?act=0" OnClick="photos_form=open_photos_form('');" target="photos_form"><? echo $lang[11]; ?></a></p>
     
    </form>
    </body>
    </html>
    Et voici le fichier findpath.php qui gère les chemins pour l admin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?
    $DIRROOT=dirname(realpath ($FINDPATH));
    $DROOT=$_SERVER['DOCUMENT_ROOT'];
    $WROOT="http://".$_SERVER['SERVER_NAME'];
    if (substr($DROOT,-1)=="/") $DROOT=substr($DROOT,0,-1);
    $DIRROOT=str_replace("\\","/",$DIRROOT);
     
    $WWWROOT=$WROOT . eregi_replace("$DROOT","",$DIRROOT);
     
    define('DIRROOT',$DIRROOT);
    define('WWWROOT',$WWWROOT);
    define('INCLUDEDIR',"includes");
    define('IMAGESDIR',"images");
    define('VIDEOSDIR',"videos");
    define('UPLOADDIR', "wduploads");
     
    define('SITEDIRROOT',"/var/www/vhosts/ns0000007.ovh.net/httpdocs/dossierdusite/");
    define('SITEWWWROOT',"http://www.nomdusite.com");
    ?>

  5. #5
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Désolé pour cette remarque un peu générale, pas bien optimiste et qui colle peu à tes préoccupations du moment, mais quand je vois un code comme ça (au pifomètre qui date d'à peu prés dix ans), je me dis que la meilleur chose à faire n'est pas de le rafistoler bon an mal an, mais de tout recommencer.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Points : 43
    Points
    43
    Par défaut
    le site a presque dix ans et j'ai refait les 3/4 du site déjà. Mais j'apprends en même temps et il y a encore pas mal de choses que je sais pas faire. Là j'attaque la partie admin qui est la plus ancienne justement, code d'origine. Je vais tout refaire mais le site est en ligne et je peux pas dans l urgence m'occuper de tout. Je fais au plus urgent pour pouvoir bosser..
    Si vous pouvez m'aider ce serait très aimable

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/08/2012, 15h44
  2. Besoin d'aide pour remplacer avec expression régulière sur plusieurs lignes
    Par MediaVistaIntel dans le forum Général Python
    Réponses: 11
    Dernier message: 01/12/2011, 14h19
  3. Aide pour remplacer un long switch
    Par WebDream dans le forum Langage
    Réponses: 4
    Dernier message: 24/09/2008, 09h56
  4. [VBA-E]remplacer à l'aide d'une macro
    Par colombine28 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/03/2007, 05h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo