preg_match & img src

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : preg_match & img src

Re: preg_match & img src

par aloha123 » 19 mars 2013, 10:41

Merci Moogli !

Re: preg_match & img src

par moogli » 15 mars 2013, 12:26

Trouver la solution sur un bout de code peut être formateur ;)

Ce n'est pas si complexe :
- par courir les dossier images et lorsque l'on est en bout d'arbre faire un update brutale (comme indiqué sur lon premier poste) sur la table.
Comment savoir que l'on est en fin de dossier ?
Une fonction récursive gardera le dernier répertoire parcourut. Lorsque tu sort de cette fonction c'est qu'il n'y à plus "d'enfant" du coup tu update.

Il y a sûrement plus optimisé mais c'est du live la ;)

Bon courage

@+

Re: preg_match & img src

par aloha123 » 14 mars 2013, 10:51

Merci pour cette réponse Moogli :D

Je me suis compliqué la vie car en effet il n'y a pas que mon 'DossierVacances', mais beaucoup d'autres dossiers et sous dossiers (des années de contenus ^^), c'était pour "simplifier" aussi, dans un sens, le traitement final :P

Je vais calculer le nombre de dossiers, peut être qu'au final ça me prendra moins de temps que passer une journée à trouver la solution sur un bout de code :P

Re: preg_match & img src

par moogli » 14 mars 2013, 00:07

salut,


il y a beaucoup plus simple, remplace la chaine directement, vue que je suppose que c'est relativement unique comme truc ;)

en php :
<?php
 str_replace('src="/monSousDomaine/images/DossierVacances/','src="/2013/03/', $lachaine);
?>
en SQL
update latable set lechamp =  REPLACE(lechamp,'src="/monSousDomaine/images/DossierVacances/','src="/2013/03/');
http://dev.mysql.com/doc/refman/5.0/en/ ... on_replace

@+

preg_match & img src

par Aloha123 » 12 mars 2013, 15:02

Bondour,

Je souhaite, suite à un changement de plateforme pour un site, changer automatiquement le dossier cible de mes <img src>

En effet sur mon ancienne version c'était du genre /monSousDomaine/images/DossierVacances/img.jpg
Hors, je passe sous un Wordpress. Je souhaiterais donc éviter de re-saisir manuellement toutes mes images et que donc que les :

<img src="/monSousDomaine/images/DossierVacances/imagesUne.jpg> se transforme en <img src="/2013/03/imagesUne.jpg>

Pour cela j'ai commencé quelquechose du genre :

$sql=mysql_query("select post_id, post_content from wp_posts",$link);
$nb=mysql_num_rows($sql);
$new="/2013/03/";

if (mysql_num_rows($sql)) {
     while ($row = mysql_fetch_array($sql)) { 
     
       $nb=preg_match_all('/<img[^>]+>/i',$row['post_content'], $result);  
       for($i=1;$i<=$nb;$i++)
        {
            echo $result[0][$i];            
            $nouveaucontent=str_replace($result[0][$i],$new,$row['post_content']);
            /*update
            mysql_query("UPDATE wp_posts SET post_content=$nouveaucontent WHERE post_id=$row['post_id']");
           */
        }
        
     
    }
}      
Mon preg_match_all récupère mon <img src complet>, je n'arrive pas à demander par ex -> /monSousDomaine/images/DossierVacances/ pour le transformer en /2013/03/

Ou peut être que ma solution est trop tirée par les cheveux