Nu wou ik daar een functie aan toevoegen die de link inkort als die te lang is.
Ik probeerde het zo (dacht al dat het niet werkte, toch nog even getest):
Dat werkt niet, toen heb ik nog wat lopen prutsen met quotes (quotes weghalen, bijzetten, verplaatsen enz.). Ook hbe ik de \\1 vervangen door $1.
Maar elke keer gebeurd er hetzelfde, namelijk:
In de functie word de lengte van de url opgevraagd ([php]strlen[/php]). Maar hij neemt dan de lengte van wat er tussen de quotes staat (\\1), dat komt altijd uit op 2 karakters. Logisch want het staat tussen quotes. Maar zodra ik de quotes weghaal, krijg ik een warning:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\wamp\www\project_cms\classes_functions\class.ubb.php on line 158
Is er een mogelijkheid om de uitkomst uit de preg_replace toch door een functie te halen?
Ik heb het doorgelezen, en ik begrijp een deel, maar nu snap ik eigenlijk niet wat ik moet doen... Zou je een klein voorbeeldje willen geven over het gebruik van [php]preg_replace_callback[/php]? Want ik snap de voorbeelden van php.net niet echt.
Evt. de functie:
<?php
function cut_url($url)
{
if (strlen($url) > 40){
$short = substr($url, 0, 18) . "...." . substr($url, -18);
}else{
$short = $url;
}
return $short;
}
?>
En een overzichtelijkere manier om een grote rits aan ubb tags te doen is door eerst alle regels in een hash te zetten en die daarna door regex te houden.
Ik ben niet zo goed in preg_replace en regex (de code die ik tot nu toe heb laten zien komen ook gewoon uit Hipska's UBB Class). Ik kom er niet uit.
Ik heb dit regeltje:
Maar het lukt me gewoon niet, ik denk dat dat vooral komt omdat ik het niet goed snap. Ik werd niet echt veel wijzer van de php.net handleiding. Ik hoef geen hele voorgekauwde code, maar misschien is er iemand die voor mij de regex kan ontleden? Zodat ik snap wat alles doet.