Mattes: String-Vergleich

Beitrag lesen

Du vergleichst immer nur den Titel des letzten Eintrags mit dem aktuellen. Wenn die doppelten Einträge nicht direkt hintereinander erscheinen, können zumindest diese nicht erkannt werden.

Ja, Danke, da hast Du natürlich recht, aber: in dem Fall der Ostseezeitung, stehen die Titel ja direkt hintereinander und dennoch werden die Doubletten beim Vergleich ja offenbar nicht erkannt.

Da hatte ich nicht reingeguckt, aber beim Blick in den Quelltext fällt mir folgendes auf:

<a href='
<?php echo htmlspecialchars ($link, ENT_QUOTES); ?>
                    ' target='_blank'>...mehr</a>" >
<?php
echo "$title";
echo htmlspecialchars (filtereHTML($title), ENT_QUOTES);
echo "$alttitle";
echo htmlspecialchars (filtereHTML($alttitle), ENT_QUOTES);?>
</li>

HTML-seitig wird daraus dieses:

<a href='
http://www.ostsee-zeitung.de/Region-Rostock/Rostock/0-4-Hansa-verliert-gegen-Kiel                    ' target='_blank'>...mehr</a>" >
title<br>0%3A4%3A+Hansa+verliert+gegen+Kiel<br>alttitle<br>0%3A4%3A+Hansa+verliert+gegen+Kiel

</li>

IMHO müsste das abschließende </li> in der direkt auf die $alttitel-Ausgabe folgenden Zeile erscheinen; tatsächlich kommt da aber erstmal eine Leerzeile. Es erscheinen zudem drei <br>, die im PHP-Code nicht angegeben sind – bemerkenswerterweise drei, nicht vier. Die $titel-Ausgabe ist von zwei <br> umrahmt, die $alttitel-Ausgabe hat hingegen nur ein <br> vorneweg und die Leerzeile hintenran. Irgendwas passt da nicht zusammen, wo kommen die <br> her, wo die Leerzeile?

Weiterhin halte ich es für unklug, erst im if den titel!=alttitel-Vergleich zu machen (mit dem Originaltitel), dann dieses …

$trenn4 = ": (";
$title = explode($trenn4, $title);
$title = $title[0];

… und am Ende alttitel mit dem "explodierten" Titel zu füttern. Der nächste Vergleich mit dem Originaltitel geht nicht mehr gegen den alten Originaltitel, sondern den möglicherweise explodierten.