Search code examples
phpxmlparsingtags

Parse tag name using php


Please help me sir. How to parse multiple tag using php

<?php
function getTextBetweenTags($string, $tagname) 
{ 
$pattern = "/<$tagname ?.*>(.*)<\/$tagname>/"; 
preg_match($pattern, $string, $matches); return $matches[1]; 
}
$str = '<mp4>hxxps://test.com/vid1.mp4</mp4><mp4>hxxps://test.com/vid2.mp4</mp4><mp4>hxxps://test.com/vid3.mp4</mp4><mp4>hxxps://test.com/vid4.mp4</mp4><mp3>hxxps://test.com/music1.mp3</mp3><mp3>hxxps://test.com/music2.mp3</mp3>';
echo getTextBetweenTags($str, "mp4"); // hxxps://test.com/vid4.mp4
?>

how to get ouput by list tag from mp4 example :

hxxps://test.com/vid1.mp4

hxxps://test.com/vid2.mp4

hxxps://test.com/vid3.mp4

hxxps://test.com/vid4.mp4


Solution

  • <?php
    function getTextBetweenTags($string, $tagname) 
    { 
    $pattern = "/<{$tagname}>(.*?)<\/{$tagname}>/"; 
    preg_match_all($pattern, $string, $matches); return $matches[1]; 
    }
    $str = '<mp4>hxxps://test.com/vid1.mp4</mp4><mp4>hxxps://test.com/vid2.mp4</mp4><mp4>hxxps://test.com/vid3.mp4</mp4><mp4>hxxps://test.com/vid4.mp4</mp4><mp3>hxxps://test.com/music1.mp3</mp3><mp3>hxxps://test.com/music2.mp3</mp3>';
    print_r(getTextBetweenTags($str, "mp4")); // hxxps://test.com/vid4.mp4
    ?>
    

    Result

    Array
    (
        [0] => hxxps://test.com/vid1.mp4
        [1] => hxxps://test.com/vid2.mp4
        [2] => hxxps://test.com/vid3.mp4
        [3] => hxxps://test.com/vid4.mp4
    )