phpbar.de logo

Mailinglisten-Archive

[php] [OT] ereg[i]_replace

[php] [OT] ereg[i]_replace

Martin Samesch martin.samesch_(at)_vogelspinnenseite.de
Wed, 02 Aug 2000 22:13:19 +0200


Hallo,

um einen Text mit Links auf Tabellen/Abbildungen versehen zu koennen,
soll der Benutzer an den entsprechenden Stellen Pseudo-Tags
("[Tabelle]", bzw. "[Abb.]") einfügen. Da hierbei evtl. Tippfehler
beruecksichtigt werden muessen, habe ich angefangen, mit Regular
Expressions herumzuexperimentieren (absoluter Newbie). Durch "trial and
error" bin ich zu folgendem Ergebnis gekommen:

# kleine Auswahl
$eingabe[] = "[Tabelle 1]";
$eingabe[] = "[Tabelle1]";
$eingabe[] = "[Tab 1]";
$eingabe[] = "[Tab1]";
$eingabe[] = "[Table 1]";
$eingabe[] = "[Table1]";
$eingabe[] = "[Abb. 1]";
$eingabe[] = "[Abb 1]";
$eingabe[] = "[Abb.1]";
$eingabe[] = "[Ab. 1]";
$eingabe[] = "[Ab.1]";
$eingabe[] = "[Ab 1]";
$eingabe[] = "[Ab1]";

$count = 0;

while ($eingabe[$count])
{

  # so siehts vorher aus
  echo $eingabe[$count] ."<br>\n";

  # Korrektur falscher Tabellen-"Tags"....
  $eingabe[$count] = eregi_replace(
    '\[((tab)([a-z]+)?[\.]?)([ ]?)([0-9])\]',
    '[Tabelle \\5]',
    $eingabe[$count]
  );

  # ....das selbe fuer die Abbildungs-"Tags"
  $eingabe[$count] = eregi_replace(
    '\[([^t][ab]([a-z]+)?[\.]?)([ ]?)([0-9])\]',
    '[Abb. \\4]',
    $eingabe[$count]
  );

  # Aus den Pseudo-Tags werden Links
  # (OK, haette ich schon oben erledigen koennen)
  $eingabe[$count] = ereg_replace(
    '\[([A-Za-z]+)([\.]?)([ ]?)([0-9])\]',
    '<a href="\\1_\\4"><b>\\1\\2 \\4</b></a>',
    $eingabe[$count]
  );

  # so siehts nachher aus
  echo $eingabe[$count] ."<br>\n";

  $count++;
}

Kar, alles ist damit nicht abgedeckt, z.B. wuerde aus "abelle"
"Abb."....

Ich frage mich jetzt nur, ob sich das Ganze nicht eleganter und vor
allem effektiver machen liesse.

Vielen Dank fuer Hinweise. Ausnahmsweise bitte kein RTFM, weil ich
(zumindest im Moment) nicht tiefer in die Materie einsteigen will und
mit dieser Loesung leben kann. Wuerde mich trotzdem interessieren....
;-)

Gruss,
Martin

-- 
Bitte um Empfangsbestaetigung.... ;-)


php::bar PHP Wiki   -   Listenarchive