Bei Rückreferenzierung Zahl übergeben / reptag
Eingetragen von joenatan (35)
am 22.08.2008 - 08:40 Uhr in
am 22.08.2008 - 08:40 Uhr in
Hallo allerseits
Ich habe folgendes Problem.
Ich möchte mit dem Module reptag mir eine Römischen Titel erstellen.
Dazu habe ich eine Funktion in mein.tag.inc hinzugefügt.
function _reptag_rpa_numberToRoman($num){
// Make sure that we only use the integer portion of the value
$n = intval($num);
$result = '';
// Declare a lookup array that we will use to traverse the number:
$lookup = array('M' => 1000, 'CM' => 900, 'D' => 500, 'CD' => 400,
'C' => 100, 'XC' => 90, 'L' => 50, 'XL' => 40,
'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 1);
foreach ($lookup as $roman => $value)
{
// Determine the number of matches
$matches = intval($n / $value);
// Store that many characters
$result .= str_repeat($roman, $matches);
// Substract that from the number
$n = $n % $value;
}
// The Roman numeral should be built, return it
return $result;
}
Und mit:
"#{RPA-RUC:(.*?)}(.*?){/RPA-RUC}#s" => "<div id=\"rpa-ruc\">"._reptag_rpa_numberToRoman('\\1').".<span>\\2</span></div>",
Nun habe ich das Problem, dass der Rückgabewert ('\\1') nicht eine Zahl ist sondern ein String. Da die Funktion einen Int Wert benötigt habe ich da ein Problem. Ich habe schon mehrere möglichkeiten ausprobiert. Alle scheinen nicht zu funktionieren.
Mache ich da einen Denkfehler ?
Danke für eure Hilfe und Tipps
Gruss Joenatan
- Anmelden oder Registrieren um Kommentare zu schreiben
Gelöst
am 22.08.2008 - 10:14 Uhr
Habe es herausgefunden mit folgendem code funktioniert es:
"#{RPA-RUC:([0-9]+)}(.*?){/RPA-RUC}#e" => "'<div id=\"rpa-ruc\">'._reptag_rpa_numberToRoman(\\1).'.</div><div id=\"rpa-ruc-title\">\\2</div><div class=\"clear\"></div>';"