r3d
also ich hab n riesen problem, ich mach mir ne page auf der ich skins brauche, das sind html dateien wo so sachen wie z.B. [content] drinne steht, ich möchte nun habe dass er das durch include(); ersetzt aber des geht nich, ich hatte es dann mit
| php: |
1:
2:
3:
4:
|
<?php $text = implode('', file("$dir/$page.php"));
$text = str_replace("\n","<br>",$text);
$text = stripslashes($text);
$zeile = str_replace("%content%",$text,$zeile); ?> |
|
gelöst aber das reicht mir nichtmehr da ich da leider kein php ausführen kann...
MMB
include die Ausgabe der Datei in einen Buffer und speicher diesen in die Ausgabe. Und löscht die Anzeige des Buffers.
r3d
hmmmm ja.... öhm wie geht das ^^ ich hab noch nie was mit nem buffer zu tun gehabt, wäre nett wenn du mir nen code zur demonstration hättest oder so.
MF G r3d
r3d
denke es funktioniert! aber ich hab nen anderes problem, weiß jemand wie ich es machen kann z.B. wenn ich im skin nen teil hab z.B. [element_counter] dass er dann dort die datei counter includet und wenn anstatt counter was anderes steht soll er das includen, ich hoffe jemand versteht was ich meine, thx schon mal...
MMB
Dann musst du deine Ausgabe prasen (mit str_replace oder preg_replace). Dafür musst du aber die Ausgabe in einer Variable haben.
r3d
hmm und wie geht das ^^ ich chekc das nich so genau, ich hab s mit ereg_replace versucht aber habs irgendwi nich auf die reihe gebracht..
r3d
hmmmmm, also ich bin jetzt soweit:
| php: |
1:
2:
3:
4:
5:
6:
7:
|
<?php $test = "hier nen paage code oder so und hier nen [plugin_counter] zum counter anzeigen lassen oder so";
$term = '(\[plugin_(.*)\])iUms';
$replace = "include($1);";
$test = preg_replace($term,$replace,$test);
echo $test; ?> |
|
naja jetzt kann ich aber hier nichts includen, da steht dann immer:
hier nen paage code oder so und hier nen include(counter); zum counter anzeigen lassen oder so
kann mir jemand helfen?
PS: ich habs auch schon so verscuht:
| php: |
1:
|
$replace = "<? include($1); ?>"; |
|
hat aber auch nich geklappt...
tkshorty
hatte probs weil das mit dem $1 net mehr ging aber das kann muan umgehen is zwar etwas umständlich aber ich hoffe es hilt dir trotzdem weiter. du musst dafür ganze datei die du includest in ne variable schreiben.
| php: |
1:
|
<?php $replace="HalooHalooHalooHalooHalooHalooHalooHaloo" ; ?> |
|
so und dann so was in der art
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
<?php $test = "hier nen paage code oder so und hier nen [plugin_counter] zum counter anzeigen lassen oder so";
ereg("\[plugin_.*\]",$test,$regs);
$wort=$regs[0];
$wort=preg_replace("/\[plugin_/","",$wort);
$wort=preg_replace("/\]/","",$wort);
include($wort.".php");
$test = preg_replace("/\[plugin_.*\]/",$replace,$test);
echo $test;
?> ?> |
|
r3d
cool, werd ich morgen ma testen aber funktioniert das auch wenn in $test mehrere stehen? also [plugin_counter] und [plugin_vote] z.B.?
tkshorty
nein das geht net aber ich hab mir das n bisschen näher angeschaut und so ne art bbcode geschrieben.
wenn du das
durch [plugin_ und das durch ] ersetzt und den code sonst noch n bisschen abänderst müsste das auch gehen
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
<?PHP
$test = "[Url]http://zumcounter/sdsdfas/sdf[/url]so[url]hfdh[/url]wie gehts weiter
[url]www.google.de[/url]";
$bbtag=spliti("\[url\]",$test);
for ($i=1;$i<count($bbtag);$i++)
{
$tmp=spliti("\[/url\]",$bbtag[$i]);
$wort = preg_replace("/http:\/\//","",$tmp[0]);
$such_wort = "\[url\]".preg_replace("/\//","\/",$tmp[0])."\[\/url\]";
$test = eregi_replace($such_wort,"<a href=\"http://".$wort."\">[URL]http://[/URL]".$wort."</a>",$test);
}
echo $test;
?> |
|
r3d
hmmm, guter tipp, ich bin grad am herumtüfteln, das problem is nur das der include am anfang der seite gemacht wird und nicht da wo das [plugin_... steht (obwohl ich es mit ob_start... mache)
r3d
oki also ich habs jetzt vorerst gelöst:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
|
<?PHP
$test = "hihi, schaut euch meinen fetten test an:[plugin_test]<br> das war doch g0il oder?";
$bbtag=spliti("\[plugin_",$test);
for ($i=1;$i<count($bbtag);$i++)
{
$tmp=spliti("\]",$bbtag[$i]);
$wort = preg_replace("/http:\/\//","",$tmp[0]);
$such_wort = "\[plugin_".preg_replace("/\//","\/",$tmp[0])."\]";
// Datei auslesen:
$text = implode('', file("plugins/$wort.php"));
$text = str_replace("\n","<br>",$text);
$text = stripslashes($text);
$test = eregi_replace($such_wort, $text,$test);
}
echo $test;
?> |
|
>> test.php <<
| php: |
1:
2:
3:
4:
|
<?
$name = "r3d";
echo "hihi > $name <";
?> |
|
das stellt mich aber vors nächste problem:
er füht den php code nicht aus:
hihi, schaut euch meinen fetten test an:$name = "r3d";
echo "hihi > $name <";
?>
das war doch g0il oder?
kann mir einer von euch pro-codern helfen das zu richten?
THX schonmal, MFG r3d
tkshorty
versuchs mal so
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
<?PHP
$test = "hihi, schaut euch meinen fetten test an:[plugin_test]<br> das war doch g0il oder?";
$bbtag=spliti("\[plugin_",$test);
for ($i=1;$i<count($bbtag);$i++)
{
$tmp=spliti("\]",$bbtag[$i]);
$wort = $tmp[0];
include ($wort.".php");
$such_wort = "\[plugin_".preg_replace("/\//","\/",$tmp[0])."\]";
$test = eregi_replace($such_wort,$replace,$test);
}
echo $test;
?> |
|
test.php
| php: |
1:
2:
3:
4:
|
<?php
$name = "r3d";
$replace= "hihi > $name < ";
?> |
|
du musst jedesmal wenn du in der test.php ein echo schreiben willst das an die replace variable anhängen.
dann würde so ein code:
| php: |
1:
2:
3:
4:
5:
6:
|
<?
$name = "r3d";
echo "hihi > $name <";
echo "<br>Hasloo";
?>
|
|
dann so aussehen müssen damit es klappt:
| php: |
1:
2:
3:
4:
5:
|
<?php
$name = "r3d";
$replace= "hihi > $name < ";
$replace.= "<br>Halsoo";
?> |
|
r3d
hei
fettes THX, du hast mir sehr geholfen, mit deiner Hilfe konnte ich an dem code noch ein wenig herumtüfteln und jetzt geht normales PHP ohne probleme, ohne das man es in $replace umbennen muss, falss jemanden der code interessiert:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
|
<?PHP
$test = "hihi schaut euch meinen fetten test an: [plugin_test]<br> das war doch g0il oder?";
$bbtag=spliti("\[plugin_",$test);
for ($i=1;$i<count($bbtag);$i++)
{
$tmp=spliti("\]",$bbtag[$i]);
$wort = $tmp[0];
ob_start();
include("plugins/$wort.php");
$write = ob_get_contents();
ob_end_clean();
$wort = preg_replace("/http:\/\//","",$tmp[0]);
$such_wort = "\[plugin_".preg_replace("/\//","\/",$tmp[0])."\]";
$test = eregi_replace($such_wort, $write,$test);
}
echo $test;
?> |
|
MFG r3d
und
THX nochmal...
tkshorty
ich hab meinen vorschlag ja in so ner art bbcode geschrieben. weiß irgendjemand wie ich \ umwandeln kann in \\ weil sobald ein \ an der falschen stelle steht klappt mein ganzes script net mehr. ich habs zwar schon mit ereg_replace probiert aber irgendwie spinnt der n bisschen rum
ThiefMaster
| php: |
1:
|
<?php $string = str_replace('\\', '\\\\', $string); ?> |
|
tkshorty
klappt auch net mit hochkommata falls du das gemeint hattest. der ersetzt die zwar aber so gut wie immer mit der falschen anzahl
ThiefMaster
war ein vertipper, probiers jetzt mal
tkshorty
hab ich mir fast gedacht und grad mitausprobiert. aber wenn ich das mache gibt der für
http:\\jaja\doch
das hier auf dem bildschirm aus
http:\\jaja\\doch
und wenn ich im replace teil nur \\ anstatt \\\\ nehme gibt der
htp:\jaja\doch
aus.
das is ja genau das problem, das ich von anfang an gemeint hatte