Regex & PHP - isolate src attribute from img tag

前端 未结 10 1467
眼角桃花
眼角桃花 2020-11-28 08:55

With PHP, how can I isolate the contents of the src attribute from $foo? The end result I\'m looking for would give me just \"http://example.com/img/image.jpg\"



        
10条回答
  •  北荒
    北荒 (楼主)
    2020-11-28 09:42

    I'm extremely late to this, but I have a simple solution not yet mentioned. Load it with simplexml_load_string (if you have simplexml enabled) and then flip it through json_encode and json_decode.

    $foo = 'test image';
    
    $parsedFoo = json_decode(json_encode(simplexml_load_string($foo)), true);
    var_dump($parsedFoo['@attributes']['src']); // output: "http://example.com/img/image.jpg"
    

    $parsedFoo comes through as

    array(1) {
      ["@attributes"]=>
      array(6) {
        ["class"]=>
        string(12) "foo bar test"
        ["title"]=>
        string(10) "test image"
        ["src"]=>
        string(32) "http://example.com/img/image.jpg"
        ["alt"]=>
        string(10) "test image"
        ["width"]=>
        string(3) "100"
        ["height"]=>
        string(3) "100"
      }
    }
    

    I've been using this for parsing XML and HTML for a few months now and it works pretty well. I've had no hiccups yet, though I haven't had to parse a large file with it (I imagine using json_encode and json_decode like that will get slower the larger the input gets). It's convoluted, but it's by far the easiest way to read HTML properties.

提交回复
热议问题