Seite 1 von 1
str_replace auf ganze Seite anwenden
Verfasst: 26.08.2009 17:04
von Ghostt
Hallo
Da ich noch ein PHP noob bin. bruache ich eure hilfe um mit einem php code zb. str_replace oder änlichem eine bestimmten text (in dem fall eine url) zu ersetzen.
diese funktion soll in einem phpbb 3 forum implementiert werden in der viewtopic_body.php.........
die frage ist wie es sich realsieren lässt ohne den "subject" zu verwenden, da es sonst nicht umsetzbar ist.
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
der php code soll wie gesagt die seite durchsuchen nach den wort und ihn ersetzen.
mfg nicy
Re: str_replace auf ganze Seite anwenden
Verfasst: 26.08.2009 20:53
von Boecki91
Wenn es um Beiträge geht würde ich dir die Wortzensur empfehlen. die kannst du im ACP, ich glaube unter Beiträge sollte das stehen.
Ich gehe immer noch davon aus das es um Beiträge geht und schiele dann auf die viewtopic.php, da werden die Beiträge ausgelesen und da kann man deine Suchen Ersetzen Möglichkeit einbauen, das nachzuvollziehen wo da wie was herkommt ist für einen Anfänger sicher nicht einfach, aber da müsste es gehen.
Sollte es etwas sein was in der Datenbank stehen und geändert werden kann man das auch mit einem SQL Befehl machen.
Wie du siehst gibt es zig Möglichkeiten, wenn du genauer beschreibst was du vorhast kann man dir bestimmt besser helfen.
Re: str_replace auf ganze Seite anwenden
Verfasst: 28.08.2009 17:53
von Ghostt
hab ich mit output buffering gelöst
Re: str_replace auf ganze Seite anwenden
Verfasst: 28.08.2009 20:01
von Boecki91
Ist aber nicht der feine Weg

Re: str_replace auf ganze Seite anwenden
Verfasst: 28.08.2009 21:06
von Ghostt
hast du einen saubereren vorschlag?
als der hier:
Code: Alles auswählen
<?php
function callback($buffer)
{
// replace all the apples with oranges
return (str_replace("apples", "oranges", $buffer));
}
ob_start("callback");
?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php
ob_end_flush();
?>
Re: str_replace auf ganze Seite anwenden
Verfasst: 28.08.2009 21:22
von Boecki91
Da ich immer noch nicht weißt was genau du machen willst (die GANZE Seite wirst du niemals ersetzen lassen, oder?) kann ich dir nicht weiter helfen wie ich dir bereits habe.
Du kannst alles ändern, ohne diese ob Funktionen, wenn du sagen würdest was du genau ändern willst. Mir fällt momentan nur ein Fall ein bei dem ich dir helfen könnte aber nicht will.
Boecki91 hat geschrieben:Wenn es um Beiträge geht würde ich dir die Wortzensur empfehlen. die kannst du im ACP, ich glaube unter Beiträge sollte das stehen.
Ich gehe immer noch davon aus das es um Beiträge geht und schiele dann auf die viewtopic.php, da werden die Beiträge ausgelesen und da kann man deine Suchen Ersetzen Möglichkeit einbauen, das nachzuvollziehen wo da wie was herkommt ist für einen Anfänger sicher nicht einfach, aber da müsste es gehen.
Sollte es etwas sein was in der Datenbank stehen und geändert werden kann man das auch mit einem SQL Befehl machen.
Wie du siehst gibt es zig Möglichkeiten, wenn du genauer beschreibst was du vorhast kann man dir bestimmt besser helfen.
Re: str_replace auf ganze Seite anwenden
Verfasst: 28.08.2009 23:49
von Ghostt
um genau zu sagen geht es um die ersetzung eines link vorsatzes in der art
http://example.com/?url=http://google.de...
wenn der user eingeloggt ist soll der vorsatz "
http://example.com/?url=" entfernt werden (dh. oder mit nichts ersetzt) damit die url
http://google.de alleine steht...
hoffe war verständlich.
Re: str_replace auf ganze Seite anwenden
Verfasst: 29.08.2009 00:04
von Boecki91
Schau dir mal diese alten alten Mod in der Entwickung von mir an:
http://www.phpbb.de/community/viewtopic ... 8&t=173366
Schau dir die Mod an wie da auf die Beitrags-Inhalte zugegriffen werden, insbesondere wo der Anoymisierdienst "reingeschaltet" wird.
Re: str_replace auf ganze Seite anwenden
Verfasst: 30.08.2009 16:03
von igorw
Eine Möglichkeit um eine Ersetzung auf die gesamte Seite anzuwenden wären Hooks. In docs/ Ordner von phpBB3 gibts dazu etwas dokumentation. Ein Hook für $template->display würde das etwas hübscher lösen als output buffering (aber zugegebenermassen auch nicht die hübscheste Lösung).