php
  • regex
  • preg-match
  • 2011-07-30 2 views -4 likes 
    -4
    preg_match("/<img onClick='this\.style\.maxWidth=\"490px\"; this\.style\.maxHeight=\"490px\"; 
    this\.style\.cursor=\"default\";' style='cursor: pointer; display: block; float: left; max-width: 
    490px; max-height: 160px;' src='(.)+'><br style='clear: left;'>/",$CONTENT,$MATCHES); 
    print_r($MATCHES); 
    

    Pourquoi cela n'obtient-il pas la source de l'image?PREG_MATCH Problème

    +3

    wow. premier CSS séparé et JS de HTML, alors nous parlerons de regexp ... – Dor

    +0

    Merci de ne pas répondre à ma question ... btw j'ai compris que ça ne marchait pas parce que je mettais (.) + pas (. +) ..... –

    +0

    Merci d'avoir écrit une question si floue ... Les gens ont besoin de lire ceci, vous savez. BTW Je ne suis pas le downvoter. – Dor

    Répondre

    4

    envisager l'écriture src='(.+)' au lieu de src='(.)+'

    +0

    Je me suis dit que juste après avoir posté ce lol –

    +1

    bonne réponse! ;-) –

    +0

    Si vrai homme lol –

    2

    Vous pouvez sauter beaucoup de ce genre de choses et dire simplement

    preg_match("/<img.*?src='([^']*)'/i", $content, $matches); 
    

    $matches[1] sera l'url src

    (Avant les commentaires dérapent Ceci est basé sur le modèle original de la question: il ne correspond pas aux attributs entre guillemets, parce que le motif original ne l'a pas non plus, et ce n'est pas une solution générale non plus. d balise img, et c'est tout)


    Autre que:

    • Inline CSS ?!
    • Gestionnaires d'événements en ligne ?!
    • Les guillemets simples autour des attributs ?! whoops! Mauvais à propos de celui-là! Excuses

    Rien de tout cela n'est bon!

    +0

    Cela peut fonctionner pour ce cas, mais ce n'est généralement pas utile/correct motif regexp. – Dor

    +0

    @Dor: S'il vous plaît élaborer. Je veux dire, oui, le code HTML est assez mauvais pour commencer, mais quel est le problème avec le modèle? – Flambino

    +1

    Si la chaîne de sujet contient 2 balises 'img' ou plus, alors votre ancienne regex (avant modification) pourrait correspondre à l'attribut' src' de la dernière balise 'img'. Maintenant, après avoir édité la regex, le motif peut correspondre à la valeur d'une propriété 'src' quand quelque chose comme' this.src = 'val'' est écrit en javascript (peut-être dans la valeur de l'événement OnClick) – Dor

    Questions connexes