<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
<meta name="Description" content=" [wstaw tu opis strony] ">
<meta name="Keywords" content=" [wstaw tu slowa kluczowe] ">
<meta name="Author" content=" [dane autora] ">
<meta name="Generator" content="kED2">
<title> [tytuł strony] </title>
<link rel="stylesheet" href=" [nazwa_arkusza_stylow.css] " type="text/css">
</head>
<body>
<?php
function dane($a) {
if(get_magic_quotes_gpc())
{
$tmp = stripslashes($a);
}
else
{
$tmp = $a;
}
return mysql_real_escape_string($tmp);
}
// polaczenie z bazą danych
$sql_open = mysql_connect ("localhost", "nazwa uzytkownika bazy", "haslo") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("nazwa bazy");
$sql_id = 'xxx_'; // prefix tabel
//szukamy posty z krzakami:
$zap = mysql_query("SELECT pid, post FROM ".$sql_id."posts WHERE post LIKE '%[center:%' LIMIT 0,50");
while ($tab = mysql_fetch_assoc($zap)) {
$str = $tab['post'];
echo '<br>id: '.$tab['pid'].' stare: '.$str;
$str = preg_replace("/\[center:([a-z0-9]+)\](.*?)\[\/center:([a-z0-9]+)\]/si", "
[center]\\2[/center]
", $str);
echo '<br><br>nowe: '.$str;
$zap2 = "UPDATE ".$sql_id."posts SET post='".dane($str)."' WHERE pid='".$tab['pid']."'";
$x = mysql_query($zap2);
}
?>
</body>
</html>
Taki skrypt się wykonał. W bazie już nie ma żadnych "[center:xxxxxx]".
Teraz tylko kwestia sprawdzenia czy wszystko jest tak jak być powinno.
Jeśli zależy nam na czasie to można zakomentować te 2 linie odpowiadające za wyświetlanie zmienianych postów:
echo '<br>id: '.$tab['pid'].' stare: '.$str;
echo '<br><br>nowe: '.$str;
Do tego można zwiększyć ilość przetwarzanych postów na cykl modyfikując wartości w tej lini:
$zap = mysql_query("SELECT pid, post FROM ".$sql_id."posts WHERE post LIKE '%[center:%' LIMIT 0,50");
Jak widać domyślnie jest 50 postów.
Dzięki DavPi