Gå til innhold

Printe ut deler av tekstfil med ulike farger


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

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

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 av Judofyr
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...