noob-2000 (Auf dem Schlauch stehen Profi): PHP: finde in $content alle <p> und erweitere das 3, 6, 9 durch X

Beitrag lesen

Hallo Rolf,

danke für deine schnelle Antwort. Ich gehe direkt mal darauf ein.

ein JS Snippet nach 1/3 und 2/3 - das stinkt nach einem Werbebanner…

Da hast du ein gutes Näschen bewiesen, vollkommen korrekt.

kann man da nicht auf inhaltlicher Ebene bessere Möglichkeiten schaffen?

Wäre möglich, allerdings jetzt alle Artikel zu editieren und die "optimale" Position zu finden... Da lieber automatisch nach einem Absatz, da stören sie am wenigsten.

Die Suche nach </p> ist noch machbar, bei <p> ist es problematischer, weil es ja auch sowas wie <p class="foo"> geben kann. D.h. du müsstest nach /<p[> ]/ suchen.

Guter Hinweis, darüber habe ich garnicht nachgedacht.

Nun ja, jedenfalls kannst Du darüber alle potenziellen Punkte finden. Deren Positionen steckst Du in ein aufsteigend sortiertes Array. Die Drittelung kannst Du nun auf Basis der Indexposition im Text machen (d.h. wenn l = strlen($content), dann berechne l/3 und 2l/3 und suche im Array die Einträge, die diesen Werten am nächsten kommen), oder auf Basis der Paragraphenanzahl. D.h. du könntest bei 7 Paragraphen dein Snippet hinter den zweiten (7/3=2,33 -> 2) und fünften (27/3=4,66 -> 5) setzen, unabhängig von der Paragraphengröße.

Geniale Idee, so schön einfach, Danke

Hast du noch eine alternative für strpos um alle </p> zu finden?