使用php curl替换html标签内的文本

I need to replace all appearances of vowels (a,e,i,o,u) on some previously selected link with vowel i. It is some kind of internal joke (website translator app). So far I came up with this:

    <?php
    if ($_GET['sajt']!=NULL)
    {
    $url = str_replace('&', '&amp;', $_GET['sajt']);
    $ch = curl_init(); 
    // Set url and other options
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    // Get the page contents
    $html = curl_exec($ch); 

    // close curl resource to free up system resources 
    curl_close($ch);  
    $vowels = array("a", "e", "i", "o", "u");
    $onlyconsonants = str_replace($vowels, "i", $html);
    $vowels = array("A", "E", "I", "O", "U");
    $onlyconsonants = str_replace($vowels, "I", $onlyconsonants);
    echo $onlyconsonants;
    }
    ?>

However, after I do this, str_replace changes html tags also as whole html page is stored in same string (for example head to hiid). I searched but I can't figure out way to do this propertly, as it would require some kind of html parsing and then merging it all together

Dirty way...

    $strlen = strlen( $html);
    $id = "";
    for( $i = 0; $i <= $strlen; $i++ ) {
    if ($html[$i]=='<' || $html[$i]=='>') $id = $html[$i];
    if (($html[$i]=='a' || $html[$i]=='e' || $html[$i]=='o' || $html[$i]=='u') && ($id=='>')) $html[$i] = 'i';
    if (($html[$i]=='A' || $html[$i]=='E' || $html[$i]=='O' || $html[$i]=='U') && ($id=='>')) $html[$i] = 'I';
    }