Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu] Aide Regex [PHP]
Auteur Message
Répondre en citant
Message [Résolu] Aide Regex [PHP] 
Hello à tous,

besoin d'un p'tit coup de main please Neutral

J'ai un $string qui contient des milliers de lignes, je voudrais extraire toutes les chaines qui contiennent une image .png entre double ""
en gros, j'ai par exemple url="./toto/image7.png" ou bien attrib="./toto/image12.png", la seule syntaxe qui est identique et qui m'intéresse est
Code:

="cheminrelatifetnomdelimage.png"


Ensuite je dois virer = et "" puis prendre ce chemin relatif et le remplacer avec realpath.
(mais ça c'est facile je sais faire)
donc il me faudrait juste une ame charitable qui a l'habitude des regex parce que là je bloque depuis ce matin tsss

Code:

// un bout de string pour tester
$string = 'controlbar_overlap.no-fractionalscaling="10" controlbar_overlap.fractionalscaling="0" design_images="darkvador.png" design_bgcolor="0x2D3E50"';
// je veux donc récupérer darkvador.png ou ="darkvador.png"
// ma regex qui ne fonctionne
$RegEx = '/^=".*.png"$/';
// il faudrait pouvoir la construire un peu comme ça
// commence par (=") puis n'importe quoi sauf des espaces ni de " puis fini par .png
preg_match_all($RegEx, $string, $matches);
print_r($matches);


Un grand merci pour votre aide Wink



Dernière édition par stryk le Mer 26 Sep 2018 - 08:49; édité 1 fois

______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu] Aide Regex [PHP] 
Il me semble que php utilise pcre (perl compatible regex),
ta reg serait donc :

="([^"]*\.png)" ou =\"([^\"]*\.png)\"

les parenthèses te permettent de capturer directement
la chaine (substring) qui t'intéresse.



Répondre en citant
Message [Résolu] Aide Regex [PHP] 
Salut,

Oui effectivement c'est PCRE, je teste ça direct en arrivant demain matin, merci Wink

EDIT: C'est tout bon, un grand merci à toi jay Okay Okay

Voici ma chtite fonction, sachant que je remplace le nom de l'image par son chemin complet
Et je ne peut pas utiliser "realpath" tout simplement parce que cette image n'existe pas à cette emplacement mais quelque part à la racine du fichier que j’appelle depuis un autre fichier (pas le coeur à utiliser le placement genre "setcurrentdirectory")


Code:

    // FUNCTION -----------------------------------------------------------------------------------------------------
    // Fonction pour modifier le chemin des images .png
    function ModPathPng($FullPathFile, $String) {

        // on va chercher les images .png dans le $string
        $RegEx = '/="([^:"]*\.png)"/';
        preg_match_all($RegEx, $String, $matches);

        // on cherche le chemin du fichier envoyé à la fonction
        $RealFolderPath = dirname($FullPathFile);

        // on va remplacer l'image seule par son chemin complet
        foreach($matches[1] as $match){
            $ImgPath = $RealFolderPath.'\\'.$match;
            $String = str_replace($match, $ImgPath, $String);
        }

        // on renvoi le $string modifié
        return($String);

    }
    // END Function #################################################################################################






______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Message [Résolu] Aide Regex [PHP] 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch