02. august 2009 - 23:58
Der er
11 kommentarer og 1 løsning
Preg_replace expression
Kære Eksperter, $file_id = preg_replace('/<offline>(.*?)<\/offline>/', '', $file_id); Jeg forsøger at erstatte noget kode, såfremt mine "hjemmelavede" tags eksistere i koden. Desværre fungere overstående eksempel ikke. Hjælp søges :~)
Annonceindlæg fra Lenovo
03. august 2009 - 05:03
#1
Hvis det er en linie som f.eks. hej min server <offline>192.231.332.33</offline> er ikke online så prøv med denne regex: $file_id = preg_replace('/\<offline\>(.*?)\<\/offline\>/si', '', $file_id);
03. august 2009 - 11:03
#2
Funktionen bruges til at replace noget af min html hvis man ikke er logget ind. Altså hvis man ikke er logget ind, skal koden "beskyttet" af <offline>en kode stump html her</offline> ikke vises. if(!empty($_SESSION['id'])) { $file = preg_replace('/<offline>(.*?)<\/offline>/', '', $file); } //output html echo $file; Nogle idéer?
03. august 2009 - 11:45
#3
mener du: $file = preg_replace("/<offline>(.*?)<\/offline>/", "<offline>Du er ikke logget ind</offline>", $file); ???!
03. august 2009 - 12:01
#4
Måske jeg forvirrer mere end jeg gavner. Et eksempel på noget output kode: <offline><div>Du er ikke logget ind. Klik her for at logge ind</div></offline> Overstående eksempel, med mine <offline> tags, fremtræder i min html kode. Inden html koden bliver outputtet til brugeren, bliver den kørt igennem et PHP script. Hvis man er logget ind (et simpelt if-statement), så skal indholdet af mine offline tags' erstattes af ingenting inden outputtet printes.
03. august 2009 - 15:22
#5
hvad indeholder din $file? for at preg_replace skal virke, skal $file indeholde koden fra den fil du vil replace dine tags i. f.eks. hvis det er hej.html så skal du have noget ala. $file_content = fopen("/hej.html", "r"); $file_content = preg_replace('/\<offline\>(.*?)\<\/offline\>/si', '<offline><div>Du er ikke logget ind. Klik her for at logge ind</div></offline> ', $file_content); $fp = fopen('data.txt', 'w'); fwrite($fp, $file_content); fclose($fp);
03. august 2009 - 15:25
#6
data.txt skal selvfølgelig være hej.html ;) $fp = fopen('hej.html', 'w');
03. august 2009 - 15:27
#7
og hvis det skal indeholde ingenting skal replacen være $file_content = preg_replace('/\<offline\>(.*?)\<\/offline\>/si', '', $file_content); Som du jo rigtigt nok selv har lavet det :)
03. august 2009 - 18:19
#8
Fjappe en sand regex haj! tak for hjælpen
03. august 2009 - 18:20
#9
Godkendt
03. august 2009 - 18:21
#10
Gider du prøve at smide et svar mere? Når jeg forsøger at markere, for at godkende dit svar sker der ingenting.
03. august 2009 - 18:23
#11
Selv tak :) Du skal lige huske at få lukket spørgsmålet igen :)
03. august 2009 - 18:23
#12
her :)
Vi tilbyder markedets bedste kurser inden for webudvikling