phpbar.de logo

Mailinglisten-Archive

[php] Mit preg_replace() Bereich zwischen HTML-Kommentarenersetzen

[php] Mit preg_replace() Bereich zwischen HTML-Kommentarenersetzen

Steffen Kother steffen.kother at gmx.net
Mit Jun 30 15:01:20 CEST 2004


Sebastian Mendel schrieb:

> wie willst du sie dann gezielt ausblenden wenn du sie nicht kennst?
> oder meinst du eins wo du ALLE kommentare ausblenden kannst egal wie
> die heißen?

...wäre eine Option. Habe aber mit der substr_replace()-Variante
Huddelei.

Es nimmt den Ende-Kommentar nicht für voll. Statt dessen zieht PHP an
<!-- [ENDE Reklamationsgrund] //--> vorbei bis zum Ende des Bereiches.

Die Länge des Endes ermittelt es richtig: 35.

Habe ich da evtl. etwas übersehen?

Hier mein zur Analyse zerlegter Code [1]und das Ergebnis [2]:

-- 
Mit freundlichen Grüßen / Kind regards

Steffen Kother

[1]
<?php
preg_match_all("@<!--\040\[([ADENRST]*\040.*grund)\]\040\/\/-->@",
$Kopf, $pat);
echo 'Links aussen:  '.$Pos_links_aussen = strpos($Kopf,
$pat[0][0])."<br>\n";
echo 'Links innen:   '.$Pos_links_innen = $Pos_links_aussen +
strlen($pat[0][0])."<br>\n";
echo 'Rechts innen:  '.$Pos_rechts_innen = strpos($Kopf,
$pat[0][1])."<br>\n";
echo 'Rechts aussen: '.$Pos_rechts_aussen = $Pos_rechts_innen +
strlen($pat[0][1]);
print_r(substr($Kopf, $Pos_links_innen, $Pos_rechts_innen));
?>

[2]
Links aussen: 5377
Links innen: 5413
Rechts innen: 5628
Rechts aussen: 5663
  <td colspan="2" align="left"><input type="submit" name="grund"
value="Weiter" onclick="return pruef_Form_Kopf()">
                               <input type="hidden" name="Daten"
value="##GRUND##">
  </td>
  <!-- [ENDE Reklamationsgrund] //-->
 </tr>
</table>
<!-- [/Kopfdaten] //-->


php::bar PHP Wiki   -   Listenarchive