PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Callback Funktion?


Funjoy
30.12.2004, 22:29:01
Hallo,

Ich habe mal ne Frage undzwar habe ich mir eine UBB Klasse Programmiert bei den UBB Tag IMG soll noch Überprüft werden ob die Grafik nicht zu Groß ist das habe ich mittels preg_replace_callback() realisiert. Doch um die Klasse benutzerfreundlich zu machen würde ich gerne die Einstellung der Maximalgrößen oben als var festlegen. Doch ich bekomm das nicht hin das er die in der Callback Funktion auf Variablen zugreifen kann die ausserhalb der Funktion sind.

Hier mal der Code zum verdeutlichen.
<?php
class UBBDecode
{
var $MaxWidth = 600;
var $MaxHeight = 600;
...
function UBB($string)
{
//> Bild auf Maximale größe checken (Interne Function für Callback).
function IMG($array)
{
//> Information des Bildes Laden.
$Info = @getimagesize($array[1]);

//> Bildgröße mit Angaben berechnen und versuchen Proportionen zu erhalten.
$MaxWidth = $this->MaxWidth;
$MaxHeight = $this->MaxHeight;
$Width = $Info[0];
$Height = $Info[1];

if($Height <= $MaxHeight && $Width <= $MaxWidth)
{
$Image = "<img src="".$array[1]."" width="".$Width."" height="".$Height."" alt="" title="" border="0">";
}
else
{
$ProWidth = $MaxWidth / $Width;
$ProHeight = $MaxHeight / $Height;
if($ProWidth < $ProHeight)
{
$NewWidth = $Width * $ProWidth;
$NewHeight = $Height * $ProWidth;
}
else
{
$NewWidth = $Width * $ProHeight;
$NewHeight = $Height * $ProHeight;
}

$Image = "<a href="".$array[1]."" target="_BLANK"><img src="".$array[1]."" width="".$NewWidth."" height="".$NewHeight."" alt="" title="" border="0"></a>";
}

return $Image;
}

$string = preg_replace_callback("!([-a-zA-Z0-9@:%_+.~#?&//=]+?)!Ui","IMG", $string);

return $string;
}
}
?>

Würde ich da nun mein String mit IMG Tag angeben bekomm ich immer bei den Variablen $MaxWidth und $MaxHeight (in der Callback Funktion) ein Rückgabewert 0 da die werte von $this->MaxWidth und $this->MaxHeight nicht angenommen werden.

Gibs da ne Möglichkeit wie ich auf äußere Variablen zugriff bekomme bei einer Callback Funktion?

MfG Funjoy

xabbuh
30.12.2004, 22:48:14
Du definierst eine Funktion (IMG) innerhalb einer anderen Funktion (UBB)?

Funjoy
31.12.2004, 09:52:40
Ja würde ich die Funktion ausserhalb der Funktion UBB machen findet preg_replac_callback die Funktion nicht.

MfG Funjoy