Marcus: Regular Expression? mit Funktion verbinden??

Hallo an alle,

folgendes Problem: ich hab eine Variable, die einen Text beinhält. In diesem Text befinden sich an mehreren stellen in doppelter eckiger Klammer Zahlen. wie beispielsweise hier mitten im Text [[435]]. Nun möchte ich irgendwie an die Zahl rankommen, um sie als Key für eine Datenbankabfrage zu benützen, und statt der der Anzeige von [[435]] einen aus der Datenbank generierten Link zu platzieren und damit ein Bild automatisch zu laden. Das Bild hätte hier die id 435, das ich aus der Tabelle ziehen möchte.

Was ich nur schaffe ist, dass die eckigen Klammern entfernt werden, und so dachte ich, komme ich an die Zahl, um sie anschließend in der Query einzusetzen. Aber irgendwie komm ich doch nicht an die Zahl.

Bitte um Hilfe, vielleicht hab ich mich schon total verlaufen, aber ich komm echt nicht mehr weiter. Hier ist das was ich bisher gemacht habe:

function deliverpicture($replacer)
{
 $query="SELECT * FROM " . $db_prefix . "pictures
    LEFT OUTER JOIN " . $db_prefix . "connections ON ( picture_id = connect_picture )
    LEFT OUTER JOIN " . $db_prefix . "groups ON (group_id=connect_group)
    LEFT OUTER JOIN " . $db_prefix . "master_connections ON (group_id = master_connect_group)
    LEFT OUTER JOIN " . $db_prefix . "master_groups ON (master_connect_mastergroup = master_group_id)

WHERE

picture_id  = $replacer

";

echo $query;

$result = mysql_query($query);
  $num_results = mysql_num_rows($result);

$row = mysql_fetch_array($result);
  $picture_id        =  stripslashes($row["picture_id"]);
  $picture_title        =  stripslashes($row["picture_title"]);
  $picture_description   =  stripslashes($row["picture_description"]);
  $picture_langtext     =  stripslashes($row["picture_langtext"]);
  $group_name        =  stripslashes($row["group_name"]);
  $group_description     =  stripslashes($row["group_description"]);
  $group_langtext      =  stripslashes($row["group_langtext"]);
  $picture_since       =  stripslashes($row["picture_since"]);
  $picture_filename     =  stripslashes($row["picture_filename"]);
  $picture_plainhtml    =  stripslashes($row["picture_plainhtml"]);
  $picture_type       =  stripslashes($row["picture_type"]);

require('../view_modules/thumbnail_resizer.php');

$replacestring= '<a href="/'.$area.'/'.$master_group.'/'.$sub_group.'/"><IMG SRC="/includes/thumbgen/phpThumb.php?src=../../images/masterpieces/'.$picture_filename.'';
  $replacestring=$replacestring.'&h='.$new_thumbs_height.'&f=jpeg&q=80" border="0" ALT="';
  $replacestring=$replacestring.'"></a>';

return $replacestring;
}

$pattern = '/((.*)[[(.*)]](.*))/';
$replacer = '$3';

$long_ft = preg_replace($pattern, $replacer, $long_ft);

  1. hi,

    Was ich nur schaffe ist, dass die eckigen Klammern entfernt werden, und so dachte ich, komme ich an die Zahl, um sie anschließend in der Query einzusetzen. Aber irgendwie komm ich doch nicht an die Zahl.

    Da hilft dir preg_replace_callback.

    mfg