PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : URL-Teile in Beiträgen ersetzen


m.s
07.08.2006, 01:25
Hallo zusammen,

Pogo hatte mir vor einiger Zeit ein Script für vB 3.0 geschrieben, mit dem ich Teile des Inhaltes der Beiträge ersetzen konnte. Jetzt wollte ich damit Teile einer url ersetzen, leider ging es nicht. Hier zunächst das Script:

<?php

require('./global.php');

function convert($text)
{
$text = preg_replace('#\www.alterlink.de#siU', 'neuerlink.de', $text);
return $text;
}

$posts=$DB_site->query("SELECT postid, pagetext FROM post");

while($thispost=$DB_site->fetch_array($posts))
{
$fixed = convert($thispost['pagetext']);

$DB_site->query("UPDATE post SET pagetext='".addslashes($fixed)."' WHERE postid=$thispost[postid]");
echo "Post-ID $thispost[postid] erledigt.<br>\n";
}

echo "Alles erledigt!<br>\n";

?>

Leider bekomme ich in vBulletin 3.5.4 in folgender Zeile:
$posts=$DB_site->query("SELECT postid, pagetext FROM post");
einen Fehler (Fatal error: Call to a member function on a non-object in /is/htdocs/xxx/xxx.xxx.de/vb/test.php on line 11).

Ich nehme an, dass irgendwann was am vB-Programmcode geändert wurde. Wie würde denn die richtige Zeile lauten?

Grüße
Micha

Pathor
07.08.2006, 01:42
Maybe?

$posts=$vbulletin->db->query_read("SELECT postid, pagetext FROM post");

m.s
07.08.2006, 08:56
Danke, das wars. :)

Zur besseren Übersicht pack ich nochmal den kompletten Code hier rein, vielleicht kanns jemand anders gebrauchen.

<?php

require('./global.php');

function convert($text)
{
$text = preg_replace('#\alterteil#siU', 'neuerteil', $text);
return $text;
}

$posts=$vbulletin->db->query_read("SELECT postid, pagetext FROM vb3_post");

while($thispost=$vbulletin->db->fetch_array($posts))
{
$fixed = convert($thispost['pagetext']);

$vbulletin->db->query_read("UPDATE vb3_post SET pagetext='".addslashes($fixed)."' WHERE postid=$thispost[postid]");
echo "Post-ID $thispost[postid] erledigt.<br>\n";
}

echo "Alles erledigt!<br>\n";

?>
Das Ganze als php-Datei abspeichern und aus dem Forumsverzeichnis auf dem Server starten.