PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : eregi_replace ; Macht was es will



dadie
02.03.2005, 15:58
Hallo ,

also der befehlt eregi_replace macht mit mir was ich will ich habe eine Variable nenen wir sie test so die siht etwa so aus





<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title><!--Sitename-Begin--><!--Sitename-End--></title>

<link rel="stylesheet" href="./style/Sekar/css/default.css" type="text/css">

</head>
<body>

<!--BSP-KAT-Begin-->
<!--<span class="menukat" style="background-image: url(./style/Sekar/img/003.gif);">@</span>-->
<!--BSP-KAT-End-->
<!--BSP-LINK-Begin-->
<!--<a href="<link>" style="padding-left:5px ;padding-right:5px ;" title="§">@</a><br>-->
<!--BSP-LINK-End-->
<!--PotM-Begin-->
<!--<span class="menukat" style="background-image: url(./style/Sekar/img/003.gif);">&nbsp;</span><PotM-Script><span class="menukat" style="background-image: url(./style/Sekar/img/004.gif);">&nbsp;</span>-->
<!--PotM-End-->


<div style="width:100% ; height:60px ; background-image: url(./style/Sekar/img/001.gif);" class="class1" >
<br>
<script type="text/javascript">
<!--
//Hier Bitte den Seiten Namen eintragen
//#####################################
var titel = "<!--Sitename-Begin--><!--Sitename-End-->";
//#####################################
for(i=0;i<titel.length;i++) {
part = titel.substr(i,1);
part = part.toLowerCase();
if(part != ' ') document.write('<img src="./style/Sekar/img/buchstaben/'+part+'-head.png" alt="'+part+'" />&nbsp;');
else document.write(' &nbsp; &nbsp; ');
}
-->
</script>

</div>

<table border="0" width="100%" cellspacing="0" cellpadding="0" >
<tr>
<td class="menu" style="text-align:left; font-size:12px ;">
<!--Menu-Left-Begin-->

<!--Menu-Left-End-->
<br>
</td>
<td style="width:15px;" >&nbsp;</td>
<td class="mitte" >
<!--Contest-Begin-->

<!--Contest-End-->
</td>
<td style="width:15px;" >&nbsp;</td>
<td class="menu" style="text-align:right; font-size:12px ;">
<!--PotM-Begin-->

<!--PotM-End-->
</td>
</tr>
</table>

<div style="width:100% ; height:60px ; background-image: url(./style/Sekar/img/002.gif);" class="class1" >
<span style="text-align:center; font-size:12px ;"><br>Made by Dadie<br>2005</span>
</div>

</body>
</html>


So nun mache ich folgendes



$PotM_temp = eregi_replace ('(.*)<!--PotM-Begin-->', '', $test);

echo "$PotM_temp" ;



So nun müsse als ergebniss so aussehn :



<!--<span class="menukat" style="background-image: url(./style/Sekar/img/003.gif);">&nbsp;</span><PotM-Script><span class="menukat" style="background-image: url(./style/Sekar/img/004.gif);">&nbsp;</span>-->
<!--PotM-End-->


<div style="width:100% ; height:60px ; background-image: url(./style/Sekar/img/001.gif);" class="class1" >
<br>
<script type="text/javascript">
<!--
//Hier Bitte den Seiten Namen eintragen
//#####################################
var titel = "<!--Sitename-Begin--><!--Sitename-End-->";
//#####################################
for(i=0;i<titel.length;i++) {
part = titel.substr(i,1);
part = part.toLowerCase();
if(part != ' ') document.write('<img src="./style/Sekar/img/buchstaben/'+part+'-head.png" alt="'+part+'" />&nbsp;');
else document.write(' &nbsp; &nbsp; ');
}
-->
</script>

</div>

<table border="0" width="100%" cellspacing="0" cellpadding="0" >
<tr>
<td class="menu" style="text-align:left; font-size:12px ;">
<!--Menu-Left-Begin-->

<!--Menu-Left-End-->
<br>
</td>
<td style="width:15px;" >&nbsp;</td>
<td class="mitte" >
<!--Contest-Begin-->

<!--Contest-End-->
</td>
<td style="width:15px;" >&nbsp;</td>
<td class="menu" style="text-align:right; font-size:12px ;">
<!--PotM-Begin-->

<!--PotM-End-->
</td>
</tr>
</table>

<div style="width:100% ; height:60px ; background-image: url(./style/Sekar/img/002.gif);" class="class1" >
<span style="text-align:center; font-size:12px ;"><br>Made by Dadie<br>2005</span>
</div>

</body>
</html>


Es siht dann aber so aus :





<!--PotM-End-->
</td>
</tr>
</table>

<div style="width:100% ; height:60px ; background-image: url(./style/Sekar/img/002.gif);" class="class1" >
<span style="text-align:center; font-size:12px ;"><br>Made by Dadie<br>2005</span>
</div>

</body>
</html>


WTF ???? Ömmm. ich bin total verwirrt o_O

Ich hoffe das kann mir mal einer Erklähren .

MFg Dadie

Tomarus
02.03.2005, 18:08
Hm, versuch's notfalls mal mit


$PotM_temp = eregi_replace ('(.*)<!--PotM-Begin-->(.*)', '\\2', $test);
echo ($PotM_temp);

und kontrollier, ob die $test auch das richtige enthält ...

Obwohl, nein, ich seh's grad: Weiter unten ist noch so ein <!--PotM-Begin-->, das muss weg, sonst entfernt er alles, was vor dem steht ;)

Um das zu verhindern, entfern das zweite halt, oder schreib


$PotM_temp = eregi_replace ('(.*)<!--PotM-Begin-->(.*)<!--PotM-Begin-->(.*)', '\\2<!--PotM-Begin-->\\3', $text);

Manni
02.03.2005, 18:09
Mit eregi_replace ('(.*)<!--PotM-Begin-->', '', $test) löschst du alles, was vor dem "<!--PotM-Begin-->" steht und das "<!--PotM-Begin-->" selbst. Deswegen muss das imo so aussehen, wie das "falsche" Ergebniss (denn das "<!--PotM-Begin-->" steht ganz unten) . Mir ist nicht so ganz klar, was du damit eigentlich bezwecken willst :(

Edit: Zu spät...

dadie
02.03.2005, 18:11
Mit eregi_replace ('(.*)<!--PotM-Begin-->', '', $test) löschst du alles, was vor dem "<!--PotM-Begin-->" steht und das "<!--PotM-Begin-->" selbst. Deswegen muss das imo so aussehen, wie das "falsche" Ergebniss (denn das "<!--PotM-Begin-->" steht ganz unten) . Mir ist nicht so ganz klar, was du damit eigentlich bezwecken willst :(

Edit: Zu spät...

Ja aber es schneided noch mehr weg als nur das und genau das ist gerade das Problem
es schneided nämlich auch vieles weg was nach "<!--PotM-Begin-->" ist.

Jesus_666
02.03.2005, 19:09
$PotM_temp = preg_replace ('/(.*)<!--PotM-Begin-->/Ui', '', $test);
Perl-Regexps (http://de3.php.net/manual/de/ref.pcre.php) kann man auf ungreedy schalten, dann matchen sie so wenig wie möglich.

dadie
02.03.2005, 19:21
Pög Sorry habe den fehloer gefunden habe 2 mal die Gleiche Kommentar Klasse werwended ^^°

Tomarus
02.03.2005, 20:06
Pög Sorry habe den fehloer gefunden habe 2 mal die Gleiche Kommentar Klasse werwended ^^°

Obwohl, nein, ich seh's grad: Weiter unten ist noch so ein <!--PotM-Begin-->, das muss weg, sonst entfernt er alles, was vor dem steht ;)

Öhm joar, kommt mir bekannt vor ... ;)