Det du enklast använder är reguljära uttryck (regular expressions) och en funktion som kan sök med dessa uttryck. Den funktion jag rekommenderar är preg_match() för sökningar och preg_replace() för ersättningar.
För att hitta allt inom <h1>text</h1> kan det reguljära uttrycket t.ex. ut såhär:
$text = 'lite text <h1>text</h1> lite mer text';
$search = '/<h1>(.*?)<\/h1>/i';
//För att söka
preg_match($search, $text, $matches);
print_r($matches);
//Nu skrivs alla träffar ut och i $matches[1] ligger den text du vill ha ut.
//För att ersätta
$newtext = preg_replace($search, '<title>$1</title>', $text);
print $newtext;
Inte provkört det jag skrivit ovan, men det _borde_ fungera.
Läs mer om preg_replace och mer om reguljära uttryck