Gå til innhold

highlight_string() funker kun på første linje


Anbefalte innlegg

<?php

$side = $_GET['side'];

function PHP_kode($fil) {
$fil = file($fil);

echo("<div>");
foreach ($fil as $linje => $resultat) {
	echo("<code>" . ($linje + 1) . "  ");
	highlight_string($resultat);
	echo("</code>");
}
echo("</div>");
}

PHP_kode($side);

?>

 

Resultatet blir at alle linjene i PHP fila blir skrevet med linjenummer og alt, men kun den øverste linja (linje nummer 1) blir farget med highlight_string()

Lenke til kommentar
Videoannonse
Annonse

<?php

$side = $_GET['side'];

function print_php_code($str, $type) {
switch ($type) {
	case "text":
		$str = highlight_string($str, true);
	break;
	case "file":
		$str = highlight_file($str, true);
	break;
}
$str = explode("<br />", $str);
echo "<div>";
echo "<ol>\n";
foreach ($str as $line => $syntax) {
	if( trim( $syntax ) == "" )
	{
		echo "<li></li>";
		continue;
	}
	echo "<li><code>" . $syntax . "</code></li>";

}
echo "</ol>\n";
echo "</div>";
}

print_php_code( $side, 'file' );

?>

Bruker å stå mye interesant i kommentarene i manuelen ;)

 

Edit: Forbedret den litt

Endret av M4rTiN
Lenke til kommentar

funka fint det, men..

 

Scriptet ser nå sånn ut:

<?php

$side = $_GET['side'];

function print_php_code($str, $type) {
switch ($type) {
	case "text":
		$str = highlight_string($str, true);
	break;
	case "file":
		$str = highlight_file($str, true);
	break;
}
$str = explode("<br />", $str);
$i = 1;
echo "<div>";
foreach ($str as $line => $syntax) {

	echo "<code><font color=black>" . ($line + 1) . "</font></code>";
	echo "<code>" . $syntax . "</code>";

}
echo "</div>";
}

print_php_code( $side, 'file' );

?>

 

Problemet er at nå blir alt skrevet på ei linje, men linje nummreringa funker.

Blir sånn:

1 <?php 2 3 // setter opp funksjonen o.s.v.

 

Men hvis jeg setter på <br> i echo'n min så blir det linjeskifte, men da fucker den <code> greia seg og skriver ut koden med Times New Roman elns!? :p

Endret av YaNkEs
Lenke til kommentar
Hvorfor kan du ikke bare bruke det jeg la ut? Det gjør akkurat det du ønsker. Alle linjene med fargesyntax, og linjenummer.

 

Sant det, men den <code> greia blir fucka og det blir skrevet ut med feil font! Times New Roman elns!?

 

EDIT: pluss at linjenummerene stemmer ikke helt heller..

Endret av YaNkEs
Lenke til kommentar

edit:

<?php

$side = $_GET['side'];

ob_start();

$hmm = highlight_file($side, true);
echo $hmm;

$ob = ob_get_contents();
ob_end_clean();

$a = explode("<br />", $ob);

$f = '';
$nbsp = ' ';

$j = 0;
$count = count($a);
$spa = ''; 
while($count > 1) {
$count = $count / 10;
$j++;
$spa .= $nbsp;
}
$j = 10*pow(10, $j);

foreach($a as $nummer => $tekst) {
$num = $nummer+$j+1;
$num = substr($num, 1);
if(!(int)$num) $num = substr($spa, 6).'<font color="#000000">1';
else {
	$i = 0;
	$sp = '';
	while(!(string)$num{$i}) {
		$i++;
		$sp .= $nbsp;
	}
	$num = substr($num, $i);
	$num = substr($sp, 0, -6).$num;
}
$f .= '<code><font color="#000000">'.$num.'</font></code> '.$tekst.'<br />';
}

echo $f;

?>

Endret av grimjoey
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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...