[php]preg_replace problemen
Geplaatst: vr 21 mar 2008, 23:23
Ik heb de volgende functie die ik include in een phpBB forum:
Doet netjes zijn werk, op 1 ding na: het title-attribuut van dfn is leeg. Ofwel: de output is
Je zou zeggen dat ik dan iets vergeet te escapen of wat aanhalingstekens vergeet, maar hoe vaak ik er ook naar kijk, ik zie het niet meer. Sterker nog: inmiddels zie ik alleen maar dansende tekens ...
Wat doe ik fout?
Code: Selecteer alles
<?php
$begrip = array(
'Aikuchi' => 'Kleine tanto zonder tsuba.',
'Ashi' => 'Smalle kanaaltjes van zachter staal uitlopend van de ji tot de hamon.',
//array loopt nog tig regels door met allerlei begrippen, tbv overzicht hier even weggehaald
);
$message = preg_replace(
'/(?<=[>\s(?]|^)('
. implode(
'|',
array_map(
create_function(
'$s',
'return preg_quote($s, "/");'
),
array_keys(
$begrip
)
)
)
. ')(?=[\s.,<)?]|$)/ie',
'\'<dfn title="\' . htmlspecialchars(\$begrip[strtolower(\'$0\')]) . \'">$0</dfn>\'',
$message
);
?>
Code: Selecteer alles
<dfn title="">aikuchi</dfn>
Wat doe ik fout?