Tach!
Sinnvoller wäre es aber sicher, VOR dem Schreiben in die Datenbank '|' durch U+00AD SOFT HYPHEN (nicht durch HTML-Escapes) zu ersetzen.
str_replace( "|", "\xAD;", $row_trm['titel'] )
Das klappt so nur, wenn man mit ISO-8859-1 arbeitet, da hier das alte PHP-Leiden zuschlägt, nicht zeichen- sondern bytebasiert zu arbeiten. utf8encode() kann Abhilfe schaffen.
dedlfix.