Witam,
Po konwersji np. przy wysrodkowanym tekscie, lub obrazku mam tagi pozostale z phpbb by przemo.
[center:5e9d5e759a] [/center:5e9d5e759a]
Jak ich sie pozbyc, lub najlepiej zastapic wersja z VB?
Wersja do druku
Witam,
Po konwersji np. przy wysrodkowanym tekscie, lub obrazku mam tagi pozostale z phpbb by przemo.
[center:5e9d5e759a] [/center:5e9d5e759a]
Jak ich sie pozbyc, lub najlepiej zastapic wersja z VB?
wykonaj zapytanie:
Kod:UPDATE post
SET pagetext = REPLACE(pagetext,'STARY TEXT','NOWY TEXT')
Tak może to pomoże ale nie do końca, ponieważ w phpbb po tym kodzie [center:xxx] występują różne cyfry :)
Nie ma jakiegos znaku, ktory zastepuje dowolny ciag znakow np. cos w rodzaju: * ?
Wg mnie najlepiej napisać tutaj prosty skrypt PHP, który to zrobi. Można wtedy to bardzo fajnie zrobić za pomocą komendy LIKE w sqlu ;-)
Wg mnie to oznacza, że nie został jeszcze (przynajmniej przez DawPi) napisany. ;)Cytat:
Zamieszczone przez DawPi
Tak, nie napisałem :-)
pomogę Wam a co tam ;)
skrypt naprawia jednoroazowo 50 postów, więc należy strone odświeżać aż zostaną naprawione wszystkie posty,Kod php:
<!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ą dancyh
$sql_open = mysql_connect ("localhost", "user", "pass") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("nazwa_bazy");
$sql_id = ''; // prefix tabel
//szukamy posty z krzakami:
$zap = mysql_query("SELECT postid, pagetext FROM ".$sql_id."post WHERE pagetext LIKE '%[center:%' LIMIT 0,50");
while ($tab = mysql_fetch_assoc($zap)) {
$str = $tab['pagetext'];
echo '<br>id: '.$tab['postid'].' 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."post SET pagetext='".dane($str)."' WHERE postid='".$tab['postid']."'";
$x = mysql_query($zap2);
}
?>
</body>
</html>
albo jak jest ich dużo rozszerzyć funkcjonalność skryptu o automatyczne odświeżanie strony (dla mnie to było zbędne :) )
edit: trzeba dodać jeszcze w vB tag center oczywiście żeby to działało :)
A jaki $str = preg_replac....... byscie uzyli aby wyczyscic quoty jak ponizej:
[quote author=Jakistam link=topic=1592.msg30933#msg30933 date=1182432301]
aby byly poprawnie wyswietlane w vB ?
Gdzies wyszukalem ze niby, taki:
Ale nie za bardzo mi naprawil moj problem. (uzywam clean.php z impexu)Kod php:
$text = preg_replace('#\[quote="(.*)":([a-z0-9]+)\](.*)\[/quote:\\2\]#siU', '[quote=$1]$3[/quote]', $text);
Ktos pomoze?
Problem rozwiazany wg. poradnika http://www.vbulletin.com/forum/showthread.php?t=309519
Sprawdzałem możliwości tego skryptu i jest super.
Jednak mam jeden problem z nim, a mianowicie baze mam w UTF-8 i gubi polskie znaki :sad:
W jaki sposób go przerobić aby zostawiał tekst taki jaki był w UTF-8?
Już znalazłem odpowiedz, może się przydać innym.
Trzeba po połączeniu z bazą wkleić ten kod:
Kod php:
mysql_query("SET NAMES 'utf8'");
W narzędziach do Impexu jest cudak do czyszczenia tych śmieci. Nie chce mi się ściągać impexa, ale jest tam katalog "extras", "Tools" albo coś w tym guście i tam narzędzie do konwersji zwalonego bbcode z phpbb. Można dodać swoje kody, których nie wyłapał przy jednokrotnym przebiegu.