php-funktion vgl preg_match_all
mir
- php
hallo welt !
hab ne funktion, vergeleichbar mit preg_match_all gebastelt.
einziges problem: irgendwas stimmt nicht bei der verarbeitung von * bzw die ersten 2 while schleifen... unten is noch ein beispiel.
<?
function get_txt($ante,$post,$txt)
{
while(!(strpos($ante,"*")===false))
{
$sp=explode ("*",$ante,2);
$sp_l=0;$sp_r=0;
$sp_l=$sp
;
for($i=0;$i<=count($sp); $i++)
{
if($i!=0){$sp_r=$sp_r.$sp[$i];}
}
$ante=$sp_l.get_txt($sp_l,$sp_r,$txt).$sp_r;
unset($sp);
}
while(!(strpos($post,"*")===false))
{
$sp=explode ("*",$post,2);
$sp_l=0;$sp_r=0; $sp_l=$sp
;
for($i=0;$i<=count($sp); $i++)
{
if($i!=0){$sp_r=$sp_r.$sp[$i];}
}
$post=$sp_l.get_txt($sp_l,$sp_r,$txt).$sp_r;
unset($sp);
}
$inside=1;
$r1=@strpos($txt,$ante); if($r1===false){ $inside=0;}
$r2=@strpos($txt,$post); if($r2===false){ $inside=0;}
while($inside==1) //((strpos($txt,$ante)!=true)&&(strpos($txt,$post)!=true))
{
$p1=@strpos($txt,$ante);
$p2=@strpos($txt,$post);
$laenge=strlen($txt);
$inhalt=substr($txt,($p1+strlen($ante)),($p2-$p1-strlen($ante)));
$inter[]=$inhalt;
$txt=substr($txt,($p2+strlen($post)),($laenge-$p2+strlen($post)) );
$inside=1;
$r1=@strpos($txt,$ante); if($r1===false){ $inside=0;}
$r2=@strpos($txt,$post); if($r2===false){ $inside=0;}
}
return $inter;
}
?>
<? //das funktioniert:
$txt="12345678901234567890";
$ante="123";
$post="678";
$test= get_txt($ante,$post,$txt);
print_r($test);
echo "<br>";
?>
<? //das nicht:
$txt="12345678901234567890";
$ante="1*3";
$post="678";
$test= get_txt($ante,$post,$txt);
print_r($test);
echo "<br>";
?>
danke!