christdi Skrevet 29. september 2005 Rapporter Del Skrevet 29. september 2005 Jeg har følgende tekstfil : #!/bin/bash clear echo "Hello $USER" echo "Today is ";date echo "Number of user login :" ; who | wc -l cal exit 0 Jeg prøver å skrive ut ord i tekstfilen med ulik farge. Nedenfor er php filen min : <? $text = file("fil.txt"); foreach($text as $value) { if($value=="echo") { echo "<font color=blue>$value</font><br>"; } elseif($value=="cal") { echo "<font color=green>$value</font><br>"; } elseif($value=="clear") { echo "<font color=brown>$value</font><br>"; } elseif($value=="exit") { echo "<font color=gray>$value</font><br>"; } else { echo "<font coor=black>$value</font><br>"; } } ?> Dette fungerer desverre ikke. Kan noen hjelpe meg med dette ? På forhånd takk:) Lenke til kommentar
Magnus Holm Skrevet 29. september 2005 Rapporter Del Skrevet 29. september 2005 Prøv med: <?php $text = file("fil.txt"); foreach($text as $value) { if(preg_match("/echo(.*?)/", $value)){ echo "<font color=blue>$value</font><br>"; } (preg_match("/cal(.*?)/", $value)){ echo "<font color=green>$value</font><br>"; } (preg_match("/clear(.*?)/", $value)){ echo "<font color=brown>$value</font><br>"; } (preg_match("/exit(.*?)/", $value)){ echo "<font color=gray>$value</font><br>"; } else { echo "<font coor=black>$value</font><br>"; } } ?> Lenke til kommentar
christdi Skrevet 29. september 2005 Forfatter Rapporter Del Skrevet 29. september 2005 Takk for hjelpen. Det er bare ett problem. På linjene med echo så skrives hele linjen ut med blå farge. Det jeg ønsker er at kun echo skal skrives ut med blå farge. I tillegg prøver jeg å få " tegnet skrevet ut med brun farge og $ tegnet til å skrives ut med grønn farge. Håper du forstår hva jeg mener:) Lenke til kommentar
dabear Skrevet 29. september 2005 Rapporter Del Skrevet 29. september 2005 Se på http://no.php.net/tokenizer du, dn er bare genial:D Lenke til kommentar
Axentrix Skrevet 29. september 2005 Rapporter Del Skrevet 29. september 2005 Kan du ikke bare bruke dette?: for($a = 0; $a <= (count($text) - 1); $a++) { $text[$a] = str_replace("echo","<font color=\"0000FF\">echo</font>",$text); } Lenke til kommentar
christdi Skrevet 29. september 2005 Forfatter Rapporter Del Skrevet 29. september 2005 Hei. Jeg prøvde forslaget ditt, men det skriver ikke noe ut til skjermen. Hmm. Lenke til kommentar
Axentrix Skrevet 30. september 2005 Rapporter Del Skrevet 30. september 2005 Hei. Jeg prøvde forslaget ditt, men det skriver ikke noe ut tilskjermen. Hmm. Legg til disse linjene tilslutt: foreach($text as $value) { echo $value; } Lenke til kommentar
???????? Skrevet 30. september 2005 Rapporter Del Skrevet 30. september 2005 Axentrix, det virker åpenbart at du vet om funksjonen foreach, hvorfor bruke du da for() og count() i tråden din ovenfor? Lenke til kommentar
Axentrix Skrevet 30. september 2005 Rapporter Del Skrevet 30. september 2005 Axentrix, det virker åpenbart at du vet om funksjonen foreach, hvorfor bruke du da for() og count() i tråden din ovenfor? Fordi med den for-loopen er det lettere å kunne legge til felre redigeringsmuligheter, for hver string. Og også behandle dem senere. Lenke til kommentar
???????? Skrevet 30. september 2005 Rapporter Del Skrevet 30. september 2005 Den loopen vil gjøre akuratt det samme som en foreach. Alt du gjør er å telle antallet i arrayen, isteden for å bruke arrayen direkte. Så lenge det er alt du gjør, for det er alt du gjør, er det både tungvindt å bruke to andre funksjoner for å gjøre det samme som en annen gjør - i tillegg er det ikke en god kodestil. Lenke til kommentar
Magnus Holm Skrevet 30. september 2005 Rapporter Del Skrevet 30. september 2005 (endret) Nå, da: <?php $text = file_get_contents("fil.txt"); $text = str_replace("echo", "<font color=\"blue\">echo</font>", $text); $text = str_replace("cal", "<font color=\"green\">cal</font>", $text); $text = str_replace("clear", "<font color=\"brown\">clear</font>", $text); $text = str_replace("exit", "<font color=\"grey\">exit</font>", $text); $text = str_replace("\"", "<font color=\"brown\">\"</font>", $text); $text = str_replace("\$", "<font color=\"green\">\$</font>", $text); echo $text; ?> EDIT: Misbruk av RegEX Endret 30. september 2005 av Judofyr Lenke til kommentar
dabear Skrevet 30. september 2005 Rapporter Del Skrevet 30. september 2005 Judofyr: str_replace kan ta imot arrays, unødvendig med alle de funksjonskalla Ser ingen grunn til å bruke «"», «'» er (marginalt) kjappere, gir deg reinere kode (separere variabler og tekst), og du slipper å escape forkomster av «"». <font> er ut Så du i det heletatt på tokenizer-funksjonene som jeg lenka til? Lenke til kommentar
???????? Skrevet 30. september 2005 Rapporter Del Skrevet 30. september 2005 Det er ikke ofte at jeg er enig i at ' er bedre enn ". I vanlige fall eksisterer det ingen forskjell, heller ikke en marginal forskjell. Men det er ikke det som er argumentet, men nettopp det at i dette tilfellet så vil det gi en renere kode, og du slipper å escape tegn gjør at ' er mer egnet. Lenke til kommentar
Magnus Holm Skrevet 30. september 2005 Rapporter Del Skrevet 30. september 2005 Jeg bare lagde et eksempelscript som han/hun kunne kose seg med Jeg skrev det på rundt to (raske) minutter og brydde meg mest om at det funka Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå