![]() Mailinglisten-Archive |
Hallo Mark, Die Mail kommt sicher etwas sp�ter, als gew�nscht, aber daf�r denke ich, das das Problem damit gel�st ist. Nach mehreren Versuchen mit diversen Regex Konstrukten habe ich die Aufgabe mit substr gel�st. > <wichtig>Hier steht das, was ich haben will</wichtig> > <anfang>Hier steht Text</ende> > <wichtig>Hier steht das, was ich haben will</wichtig> > <anfang>Hier steht nochmal Text</ende> > <wichtig>Hier steht das, was ich haben will</wichtig> > <anfang>Hier steht nochmehr Text</ende> > Wie kann ich PHP klar machen, da� ich aus obigem Text > _nur_ jeweils die Zeile > <wichtig>Hier steht das, was ich haben will</wichtig> > rausziehen will? function ereg_code( $str_text, $run_patt, $end_patt ) {//Autor: Steffen Sander mail:s.sander_(at)_crs.de, crdate 17.03.2000 //Funktion ist frei verf�gbar und kann angepasst werden, //unter der Bedingung, dass min. die Autor Kommentarzeile //erhalten bleibt. Vielen Dank //Eine zu pr�fende Datei komplett als ein String einlesen //$run_patt = "<%";//statt ASP-Tags auch PHP-Tags usw. //$end_patt = "%>";//statt ASP-Tags auch PHP-Tags usw. $len_text = strlen( $str_text ); $len_runpatt = strlen( $run_patt ); $len_endpatt = strlen( $end_patt ); $start = 0; $posrun = strpos( $str_text, $run_patt ); $posend = strpos( $str_text, $end_patt ); for($i=0; $i < $len_text; $i++ ) { //substr der Code-Zeichen: $tmp_str= substr( $str_text, $posrun + $len_runpatt, $posend - $posrun - $len_runpatt); //Testausgabe: (Das Rautezeichen soll Leerzeichen markieren) //echo "\n<br>".htmlspecialchars( str_replace(" ", "#", $tmp_str) ); //echo " ($posrun ($len_runpatt)- $posend($len_endpatt))<br>\n"; $return_code .= $tmp_str."<br>\n"; //neue Startposition und Menge berechnen: $posrun = strpos( $str_text, $run_patt, $posend + $len_endpatt ); $posend = strpos( $str_text, $end_patt, $posrun ); if( !$posend || !$posrun ) { //echo "\n\n<br>Ende beim ".($i+1).". Durchlauf.<br>\n"; return $return_code;//durch return wird die Schleife automatisch beendet }//if( $posrun ) }//for($i=0; $i < $len_text; $i++ ) }//function ereg_code( $str_text, $run_patt, $end_patt ) echo "<p>".ereg_code( $str_text, "<wichtig>", "</wichtig>" ); $str_text enth�lt die eingelesene Datei und die anderen beiden Parameter erkl�ren sich hoffentlich von selbst. Wenn noch Fragen auftreten dann bitte per PM. Gru� --Steffen -- Steffen Sander - Internet/Intranet Softwareentwicklung CRS Computer Register Service GmbH - Ritterstr. 11 - 10969 Berlin mailto:s.sander_(at)_crs.de -Tel: +49-30-614 60 01 - Fax: +49-30-614 85 81 http://www.crs.de - http://www.markthalle.de - http://www.stadtnetz.net
php::bar PHP Wiki - Listenarchive