Kachelator
Peter Jerz
Hallo! Zunächst einmal: Ich habe keine Ahnung von PHP und nur ein wenig Erfahrung mit Regular Expressions.
Ich habe versucht, in einem mit PHP erstellten Forum das Einbinden von .aspx-Dateien (optional mit QueryStrings) als Images zu ermöglichen.
Also so etwas wie [Imagetag]h t t p://kachelator.europe.hosting.net/tracksigid.aspx?id=1058346[/Imagetag] sollte ebenso behandelt werden wie beispielsweise ein Jpg oder ein Gif. Da das entsprechende Aspx ein Bild zurückliefert, ist das an sich auch kein Problem. Nur der Parser des Forums machte mir zunächst Schwierigkeiten.
Für das Parsen von Image-Tags verwendet das Forum zur Zeit folgende Routine:
Darin habe ich bereits aspx und [\?=a-z0123456789]* eingefügt, um Aspx mit Querystrings parsen zu lassen, und es klappt auch wunderbar.
Jetzt habe ich aber das Problem, dass ich meinem Aspx
zwei Querystrings übergeben will in der Form [Imagetag]h t t p://kachelator.europe.hosting.net/tracksigid.aspx?id=1058346&img=3[/Imagetag]
das funktioniert leider nicht, und zwar wegen des '&'. Ich habe zwar den entsprechenden Abschnitt in der "$text=" -Zeile folgendermassen angepasst, aber das scheint nicht zu helfen: [\&\?=a-z0123456789]* . (Ich habe halt das '&' noch eingefügt, damit es ebenfalls übernommen wird.)
Nun endlich meine Frage: Wie muss der reguläre Ausdruck aufgebaut sein, damit auch mehrere durch '&' getrennte Querystrings korrekt geparst werden?
Für Rat wäre ich sehr dankbar.
Ich habe versucht, in einem mit PHP erstellten Forum das Einbinden von .aspx-Dateien (optional mit QueryStrings) als Images zu ermöglichen.
Also so etwas wie [Imagetag]h t t p://kachelator.europe.hosting.net/tracksigid.aspx?id=1058346[/Imagetag] sollte ebenso behandelt werden wie beispielsweise ein Jpg oder ein Gif. Da das entsprechende Aspx ein Bild zurückliefert, ist das an sich auch kein Problem. Nur der Parser des Forums machte mir zunächst Schwierigkeiten.
Für das Parsen von Image-Tags verwendet das Forum zur Zeit folgende Routine:
PHP:
function parseimages ($text='') {
$tags=$this->imagetags;
foreach ($tags as $code) {
$text=preg_replace("#\[".$code['tag']."]([^\"\?\&]*\.(gif|jpg|jpeg|bmp|png|aspx)[\?=a-z0123456789]*)\[\/".$code['tag']."\]#eiU","\$this->image('$code[ html ]','\\1')",$text);
}
return $text;
}
Jetzt habe ich aber das Problem, dass ich meinem Aspx
zwei Querystrings übergeben will in der Form [Imagetag]h t t p://kachelator.europe.hosting.net/tracksigid.aspx?id=1058346&img=3[/Imagetag]
das funktioniert leider nicht, und zwar wegen des '&'. Ich habe zwar den entsprechenden Abschnitt in der "$text=" -Zeile folgendermassen angepasst, aber das scheint nicht zu helfen: [\&\?=a-z0123456789]* . (Ich habe halt das '&' noch eingefügt, damit es ebenfalls übernommen wird.)
Nun endlich meine Frage: Wie muss der reguläre Ausdruck aufgebaut sein, damit auch mehrere durch '&' getrennte Querystrings korrekt geparst werden?
Für Rat wäre ich sehr dankbar.