PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 06-04-2018 07:36:33

thierryc
Membre
Inscription : 06-04-2018
Messages : 2

vérifier une url avec preg_match

Bonjour,

pour récupérer toutes les images d'un fichier XML, j'ai ce bout de code :

/* Traitement du path de l'image si url */
/* commence par http puis tout caractères jusqu'a ? puis le reste */

$masque = "#^http:([^\t^\r^\n]*)(\?)([^\t^\r^\n]*)#i";
if (preg_match($masque, $image, $matches)){       
    $image    =    "http:".$matches[1];
}

Problème, dans le même fichier je dois maintenant récupérer des images sur HTTP et d'autres sur HTTPS,

j'ai fait des recherches avec preg_match_all mais $image est en http

quelqu'un aurait-il une idée ?



exemples dans le XML:

<AGENCE_LOGO>http://admin.immo-facile.com/../segments/immo/catalog/images/manufacturers_logo/45742.jpg</AGENCE_LOGO>
et
<IMG>https://media.immo-facile.com/office/tcc-fr/catalog/images/pr_p/2/4/9/4/6/2/9/5/24946295a.jpg?DATEMAJ=30/03/2018-15:42:17</IMG>

Hors ligne

#2 07-04-2018 07:07:46

thierryc
Membre
Inscription : 06-04-2018
Messages : 2

Re : vérifier une url avec preg_match

bon finalement j'ai trouvé, c'était tout bête
ça m'étonnerait que ça intéresse quelqu'un mais à tout hasard...

    $masque = "#^http:([^\t^\r^\n]*)(\?)([^\t^\r^\n]*)#i";   
    $masque_https = "#^https:([^\t^\r^\n]*)(\?)([^\t^\r^\n]*)#i";
    if (preg_match($masque, $image, $matches)){   
        $image    =    "http:".$matches[1];
    }
    else{
        if (preg_match($masque_https, $image, $matches)){   
            $image    =    "https:".$matches[1];
        }   
    }

Hors ligne

Pied de page des forums