bepaalde html tags toestaan
Forumregels
phpBB 3.0 is End of support per 1 januari 2017. Dit forum is hier enkel ter archief. Het wordt aangeraden te upgraden naar phpBB 3.2
phpBB 3.0 is End of support per 1 januari 2017. Dit forum is hier enkel ter archief. Het wordt aangeraden te upgraden naar phpBB 3.2
- marian0810
- Berichten: 1974
- Lid geworden op: 09 apr 2007, 10:24
- Locatie: Hoofddorp
- Contacteer:
Re: bepaalde html tags toestaan
Maar waarom is phpBB2 daar dan minder gevoelig voor?
Re: bepaalde html tags toestaan
Geen idee, daarvoor verwijs ik je daar naar de developers op phpBB.com. 

Jim Mossing Holsteyn - Beheerder
Documentatie | Algemene voorwaarden | Wiki
Heb je suggesties over het verbeteren van phpBB.nl of andere site-gerelateerde vragen? Stuur me een PB!
Documentatie | Algemene voorwaarden | Wiki
Heb je suggesties over het verbeteren van phpBB.nl of andere site-gerelateerde vragen? Stuur me een PB!
Re: bepaalde html tags toestaan
Bedankt voor de moeite. Ik had de script toevallig gevonden op phpbb.com en wilde het installeren, maar hij waarschuwde bij de instructies al zo uitgebreid over risico enzo. Ik begreep ook dat ALLES van html dan ook zou werken, waardoor je allerlei risico's dan zou hebben. Ik had daarom toen besloten het toch maar niet te installeren en toch maar verder te zoeken naar 'n andere oplossing.
De oplossing die ik nu heb is:
- een php script draaien om html (img en a href) te converteren naar bbcode
- daarna pas overstappen naar phpbb3.
De script werkt goed. Ik was ook van plan het binnenkort hier te posten zodat anderen er ook wat aan hebben, maar was nog bezig met netjes maken, hier en daar instructies en helemaal in het engels.
Het werkt erg goed.
Was een soortgelijke tegengekomen bij phpbb tijdje terug maar die werkte best slecht, die ving niet alle soorten html codes op (bv alleen <img src=""> en dan niet bv <img src="" alt="" border="1">. Deze script, gemaakt door Ger, vangt alles op.
Nou ja behalve <img src=url>, als er geen quotes gebruikt zijn, maar daar heb ik 'n oplossinkje voor. Zal het hier posten zodra ik tijd heb gehad nog eens na te kijken en instructies toe te voegen.
De oplossing die ik nu heb is:
- een php script draaien om html (img en a href) te converteren naar bbcode
- daarna pas overstappen naar phpbb3.
De script werkt goed. Ik was ook van plan het binnenkort hier te posten zodat anderen er ook wat aan hebben, maar was nog bezig met netjes maken, hier en daar instructies en helemaal in het engels.
Het werkt erg goed.


Re: bepaalde html tags toestaan
Is het niet, maar toen was er nog geen alternatiefmarian0810 schreef:Maar waarom is phpBB2 daar dan minder gevoelig voor?



Re: bepaalde html tags toestaan
Ik heb toch weer een vraag...Html codes zoals <b> en <i> worden blijkbaar ook niet omgezet naar phpbb tijdens het converteren van 2 naar 3...
Ik dacht zelf 'n script te maken maar die werkt niet goed, vangt niet alle <b>'s op. Dit is wat ik had:
Het werkt voor een deel, er blijven een paar met <b> over. Ik neem aan dat er dan een karakter naast is waardoor ie het niet pakt, maar weet niet welke php functie het wel goed zal pakken....
wel blij als ik eenmaal geen probleempjes meer tegenkom.
alvast bedankt...
Ik dacht zelf 'n script te maken maar die werkt niet goed, vangt niet alle <b>'s op. Dit is wat ik had:
Code: Selecteer alles
function html_vervangen($table,$id,$text) {
$c = mysql_connect("",","");
mysql_select_db("");
$DB_quer = "select * from $table where $text like '%<b>%' or $text like '%</b>%' or $text like '%<i>%' or $text like '%</i>%'";
$DB_query = mysql_query($DB_quer) or die(mysql_error());
$DB_totaal = mysql_num_rows($DB_query);
$n=1;
while($DB_r = mysql_fetch_array($DB_query)) {
$message = str_replace('<b>', '[b]', $DB_r[$text]);
$message = str_replace('</b>', '[/b]', $DB_r[$text]);
$message = str_replace('<i>', '[i]', $DB_r[$text]);
$message = str_replace('</i>', '[/i]', $DB_r[$text]);
$message=addslashes($message);
$DB_update = ("update $table set $text = '$message' where $id = $DB_r[$id]");
echo ("$n / $DB_totaal $DB_r[$id] $message \n");
$DB_update = mysql_query($DB_update) or die(mysql_error());
$n=$n+1;
}
}
wel blij als ik eenmaal geen probleempjes meer tegenkom.

Re: bepaalde html tags toestaan
Zo even in de gauwigheid lijkt het me een goed script. Kun je eens een voorbeeld geven van wat hij niet pakt?
2 dingen die zo even in me opkomen: de functie
Andere mogelijkheid is eerst zoeken naar het geheel met een
Met daarna weer een
2 dingen die zo even in me opkomen: de functie
str_replace
is hoofdlettergevoelig. Daar dus even op letten. str_ireplace
is niet hooflettergevoelig, maar ik meen dat die niet werkte op PHP4 he? Simpelste alternatief in dat geval is ook replacements voor de hoofdletterequivalenten opnemen.Andere mogelijkheid is eerst zoeken naar het geheel met een
preg_match()
. Zoiets dus:
Code: Selecteer alles
preg_match_all("#\<b\>(.*?)\<\/b\>#i", $DB_r[$text], $matches);
foreach()
loop waar je de replacements op uitvoert.Wijziging: zag nog een syntaxfoutje
Laatst gewijzigd door Ger op 14 aug 2008, 15:17, 1 keer totaal gewijzigd.
Re: bepaalde html tags toestaan
@Sandra: mocht je de komende dagen nog vragen hebben: ik ben even een paar dagen weg naar lowlands, dus mocht het niet lukken, moet je even wachten of hopen dat iemand anders antwoordt.
Re: bepaalde html tags toestaan
bedankt voor de mededeling, ben nl snelle antwoorden van jou gewend.
zal hier wel uitkomen denk ik....veel plezier!
Hij pakte dus wel </i> maar niet <i>, zo ook voor b....
gaat dus niet om hoofdletters....is het niet zo dat ie het niet pakt door de < tekens, dat ie de andere wel pakt omdat er een / naast is?

Niet dubbelposten graag, ik heb je bericht hierbij samengevoegd.
Kon het alleen toch niet laten meteen een voorbeeld te zoeken, van wat hij niet pakt:
- Derky
Code: Selecteer alles
wil ik net lekker gaan puberen...
komt mijn pa binnen met zijn midlife crisis!
<i>Loesje[/i]
gaat dus niet om hoofdletters....is het niet zo dat ie het niet pakt door de < tekens, dat ie de andere wel pakt omdat er een / naast is?
Re: bepaalde html tags toestaan
Ik zag dat er maar een paar posts zijn met <b> en <i>, heb het uiteindelijk maar handmatig gewijzigd.
Dit is de script waarmee img en a href uitgevist kan worden, deze werkt goed.
Ger, nogmaals bedankt voor je hulp!
Dit is de script waarmee img en a href uitgevist kan worden, deze werkt goed.
Code: Selecteer alles
echo html_bbcode('phpbb_posts_text','post_id','post_text');
echo html_bbcode('phpbb_users','user_id','user_sig');
echo html_bbcode('phpbb_privmsgs_text','privmsgs_text_id','privmsgs_text');
function html_bbcode($table,$id,$text) {
//connect to the database and make query of the text which has to be changed
$c = mysql_connect("","","");
mysql_select_db("");
$DB_query = mysql_query("select * from ".$table." where ".$text." like '%<a href%' or ".$text." like '%<img%' ") or die(mysql_error());
$DB_aantal = mysql_num_rows($DB_query);
$n=1;
while($DB_result = mysql_fetch_array($DB_query)) {
$message = $DB_result[$text];
//1. Replace <img.. url...> with [img]url[/img]
preg_match_all('#\<img(.*?)\>#i',$message, $matchees );
foreach ($matchees as $totaalimg) {}
foreach ($matchees[0] as $totaal2img) {
//search for src="url"
preg_match_all('#src=\"(.*?)\"#i',$totaal2img, $matches );
foreach ($matches as $key=>$preimg){}
$replacement = $preimg[0];
$aantal=count($preimg);
//nothing found? search for src='url'
if ($aantal == 0) {
unset ($preimg);
preg_match_all("#src=\'(.*?)\'#i",$totaal2img, $matches );
foreach ($matches as $preimg){}
$replacement = $preimg[0];
$aantal=count($preimg);
//nothing found? search for src=''url''
if ($aantal == 0) {
unset ($preimg);
preg_match_all("#src=\'\'(.*?)\'\'#i",$totaal2img, $matches );
foreach ($matches as $preimg){}
$replacement = $preimg[0];
}
}
if($replacement!="") {
//replace the complete img string with [img]url[/url]
$message = str_replace($totaal2img, '[img_max]'.$replacement.'[/img_max]', $message);
}
}
//2. Replace <a href="url"...> with [url=..] and replace </a> with [/url]
preg_match_all('#\<a(.*?)\>#is',$message, $matchees );
foreach ($matchees as $totaallink){}
foreach ($matchees[0] as $totaal2link) {
//search for href="url"
preg_match_all('#href=\"(.*?)\"#i',$totaal2link, $matches );
foreach ($matches as $prelink){}
unset($matches);
$aantal=count($prelink);
//nothing found? search for href='url'
if ($aantal == 0) {
unset ($prelink);
preg_match_all("#href=\'(.*?)\'#i",$totaal2link, $matches );
foreach ($matches as $prelink){}
unset ($matches);
$aantal=count($prelink);
//nothing found? search for href=''urk''
if ($aantal == 0) {
unset ($prelink);
preg_match_all("#href=\'\'(.*?)\'\'#i",$totaal2link, $matches );
foreach ($matches as $prelink){}
unset ($matches);
}
}
//replace the complete Ma string with [url=$url]
if($prelink[0]!="") {
$message = str_replace($totaal2link, '[url='.$prelink[0].']', $message);
$message = preg_replace('#\<\/a\>#i', '[/url]', $message);
}
}
$message=addslashes($message);
$DB_update = mysql_query("update $table set $text = '$message' where $id = $DB_result[$id]") or die(mysql_error());
echo ("$n / $DB_aantal: $table $DB_result[$id] \n ");
$n=$n+1;
}
}
Re: bepaalde html tags toestaan
Graag gedaan, en fijn dat alles uiteindelijk gelukt is! 

Re: bepaalde html tags toestaan
Nog eventjes voor de duidelijkheid, als iemand ooit hetzelfde 'probleem' hebben en deze topic vindt.
De script is bedoeld voor als je overstapt van phpbb2 naar phpbb3. Je moet deze script voor het overstappen draaien. Hier wat instructies:
1) Maak een backup van je database
2) Kopieer de script, sla het op op je server en stel de gegevens voor database in (adres, inlog, wachtwoord, databasenaam)
3) Draai de script. Kan zijn dat je last krijg van time-outs als je grote database heb. Ikzelf draaide het onder ssh via /root/php /www/forum/forum_htmlbbcode.php , zodat je geen time-out kan krijgen.
4) De script heeft a href en img vervangen. Mocht je bv phpmyadmin hebben, voer dan wat queries uit om zeker te maken dat er geen html code over is. Bij mij was er soms bv <a href=url>, omdat er geen quotes gebruikt zijn pakte de script het niet. Die moet je dus handmatig wijzigen.
5) Installeer phpbb3.
6) Zodra het installeren klaar is kan je phpbb2 converteren. VOORDAT je dat doet moet je een bbcode toevoegen:
7) Start het converteren
Ger, bij phpbb.com is er ook een topic hierover, reeds door anderen gestart. Ik zal de script daar ook posten en jouw naam bij vermelden.
De script is bedoeld voor als je overstapt van phpbb2 naar phpbb3. Je moet deze script voor het overstappen draaien. Hier wat instructies:
1) Maak een backup van je database
2) Kopieer de script, sla het op op je server en stel de gegevens voor database in (adres, inlog, wachtwoord, databasenaam)
3) Draai de script. Kan zijn dat je last krijg van time-outs als je grote database heb. Ikzelf draaide het onder ssh via /root/php /www/forum/forum_htmlbbcode.php , zodat je geen time-out kan krijgen.
4) De script heeft a href en img vervangen. Mocht je bv phpmyadmin hebben, voer dan wat queries uit om zeker te maken dat er geen html code over is. Bij mij was er soms bv <a href=url>, omdat er geen quotes gebruikt zijn pakte de script het niet. Die moet je dus handmatig wijzigen.
5) Installeer phpbb3.
6) Zodra het installeren klaar is kan je phpbb2 converteren. VOORDAT je dat doet moet je een bbcode toevoegen:
Code: Selecteer alles
[img_max]{URL}[/img_max]
<img src="{URL}" maxwidth="350"/ border="0">
Toon een plaatje maximaal 350 pixels breed
Ger, bij phpbb.com is er ook een topic hierover, reeds door anderen gestart. Ik zal de script daar ook posten en jouw naam bij vermelden.

Re: bepaalde html tags toestaan
Ga je gang. Mocht je willen: ik heb daar een gelijknamig profiel, als je dat erbij zet, dan kunnen mensen die nog vragen hebben mij bereiken. Heb je ook een linkje naar dat topic?