Webstatt.org - Community seit 2006 - 2012 (2024?)

PHP Code mit zeilen anzeigen

user-137
18.11.2006 14:17

Hallo,

ich will sowas wie hier im Forum basteln, also es wird eine function gemacht und in der wird eine Variable mit eingetragen und die function gibt es dan aus, das ist auch einfach, mein problem liegt nun darin wie kann ich die Zeilen zählen die der Code hat und wie hier im Forum ausgeben?

Zeile 1
zeile 2
usw.


Mfg. BNS

Avatar user-271
18.11.2006 14:25

$zeilen = array('Dies ist Zeile 1','Dies ist Zeile 2','Wer könnte auf eine 3 Zeile verzichten'zwinkern;

for($i = 0; $i < count($zeilen); $i++) {
echo "Zeile ".($i+1).": ";
echo $zeilen[$i];
}


oder hab ich dich falschc verstanden?

#!/bin/bash
traurig){ neutral:& };:
user-137
18.11.2006 14:33

also ich habe das ja als ganzes vorliegen und nicht als array und will es nun in einen Array teilen und zwar nach jedem Zeilen umbruch.

Avatar user-182
18.11.2006 14:39

mhhh... Fettes Grinsen
<?
$text = 'Dein Text
der
ganz
viele
Zeilen
hat!';

$gerayd_xD = explode("\n", $text);
for($i=0;$i<=count($gerayd_xD); $i++){
echo ($i+1).': '.$gerayd_xD[$i];
}
?>


oder so xD

Seid ihr auch schon wix'r? xD
user-137
18.11.2006 14:56

Gut hab nun sowas:
Nur leider zeigt er nichts an.


Aufruf:
<? echo synax("<? lol; ?>"zwinkern; ?>


Function:
function synax($text) {

$array = explode("\n", $text);
$count = count($array);

echo '<table style="width: 100%;" cellpadding="4" cellspacing="1">';
echo '<tbody>';
echo ' <tr>';
echo ' <td colspan="2"><span><b>php:</b></span></td>';
echo ' </tr>';
echo ' <tr>';
echo ' <td align="right" nowrap="nowrap"><pre>';

for ($i=1;$i<=$count;$i++) {

echo "".$i.":<br />";

}

echo '</pre></td>';
echo ' <td style="width: 100%;" align="left" nowrap="nowrap" valign="top"><pre>';

for ($i=1;$i<=$count;$i++) {

echo highlight_string($array[$i]);
echo "<br />";

}

echo '</pre></td>';
echo ' </tr>';
echo '</tbody>';
echo '</table>';
}

user-273
18.11.2006 15:02

function synax($text) {

$array = explode("\n", $text);
$count = count($array);

$string = '<table style="width: 100%;" cellpadding="4" cellspacing="1">';
$string .= '<tbody>';
$string .= ' <tr>';
$string .= ' <td colspan="2"><span><b>php:</b></span></td>';
$string .= ' </tr>';
$string .= ' <tr>';
$string .= ' <td align="right" nowrap="nowrap"><pre>';

for ($i=1;$i<=$count;$i++) {

$string .= $i.':<br />';

}

$string .= '</pre></td>';
$string .= ' <td style="width: 100%;" align="left" nowrap="nowrap" valign="top"><pre>';

for ($i=1;$i<=$count;$i++) {

$string .= highlight_string($array[$i]);
$string .= '<br />';

}

$string .= '</pre></td>';
$string .= ' </tr>';
$string .= '</tbody>';
$string .= '</table>';

return $string;
}

user-137
18.11.2006 15:07

macht keinen unterschied

Avatar user-182
18.11.2006 15:08

beachte das zweite argument von highlight_string() zwinkern

Seid ihr auch schon wix'r? xD
user-137
18.11.2006 15:11

was meinst du mit das zweite Argument?

Avatar user-182
18.11.2006 15:38

ja guck doch mal im manual nach lächeln

Seid ihr auch schon wix'r? xD
user-137
18.11.2006 15:43

Hab ich ja, aber ich sehe da kein zweites Argument:

highlight_string

(PHP 4, PHP 5)
highlight_string -- Hervorhebung der Syntax eines Strings
Beschreibung:
void highlight_string ( string str )

Die Funktion highlight_string() gibt den String str mit hervorgehobener Syntax (Syntax highlighting) aus. Dabei werden die Farben des in PHP eingebauten Syntax-Highlighter benutzt.

Avatar user-162
18.11.2006 15:52

Fettes Grinsen lol guck mal ins Englisch rein... da hat der Übersetzer wohl gepennt


highlight_string

(PHP 4, PHP 5)
highlight_string -- Syntax highlighting of a string
Description
mixed highlight_string ( string str [, bool return] )

The highlight_string() function outputs a syntax highlighted version of str using the colors defined in the built-in syntax highlighter for PHP.

If the second parameter return is set to TRUE then highlight_string() will return the highlighted code as a string instead of printing it out. If the second parameter is not set to TRUE then highlight_string() will return TRUE on success, FALSE on failure.

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
user-137
18.11.2006 15:55

ok, aber egal ob ich im Code ein TRUE oder ein FALSE hintersetze bleibt der code imer noch "unsichtbar".

Avatar user-182
18.11.2006 17:11

mhh komisch bei mir gehts... du benutzt auch GANZ SICHER echo oder print davor?
also nich einfach nur...
<?
syntax('<?
echo \'lol\';
?>'zwinkern;
?>

Seid ihr auch schon wix'r? xD
user-137
18.11.2006 17:18

ich habs so:

<? echo synax("<? lol; ?>"zwinkern; ?>

Avatar user-182
18.11.2006 17:34

dir is aba kla das dann nur eine zeile ausgegeben wird..?

ahh fehler gefunden: du darfst net mit 1 anfangen zu zählen...mach das wie ich das da hatte mit 0 anfangen und dann bei der ausgabe der zeilennummer temporär die nummer ausgeben (echo ($i+1)..)

Seid ihr auch schon wix'r? xD
Avatar user-168
18.11.2006 17:46

Hab das für mein CMS auch vor einiger Zeit mit highlighting gelöst.

Schon einer ne Methode gefunden, wie man hinterher den PHP Code wieder als solchen auslesen kann? Fettes Grinsen

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-182
18.11.2006 18:06

2x speichern inner db..? zwinkern

Seid ihr auch schon wix'r? xD
Avatar user-168
18.11.2006 18:16

Das wurde mir damals auch empfohlen. Aber dem Trend entziehe ich mich. Ich hab mir was zusammengebastelt aus strip_tags(), etc und einigen RegEx.

Allerdings muss ich dazu immer HTML-Kommentare zur Markierung der Codeblöcke in die Seite einfügen. Fettes Grinsen

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
user-303
18.11.2006 18:32

bedenke nur, dass jeder befehl cpu zeit ist. und das ausrechnen einer webseite extrem schnell von statten gehen muss

Avatar user-271
18.11.2006 20:11

ausserdem heisst es syntax und niht synax *g*

nur mal so am rande


und das mit dem 2x in der DB speichern ist durchaus sinnvoll...sonst muss du es parsen udn anders nur auslesen...was sehr wahrscheinlich schneller geht

#!/bin/bash
traurig){ neutral:& };:
Avatar user-168
18.11.2006 20:12

Wie oft editierst du denn deine Texte? Fettes Grinsen

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-271
18.11.2006 20:29

aber editieren ist 1x...oder nicht jeden TAg....aber das parsen ist mehrmals am Tag...mindestens öfters als aufrufen und parsen frech

#!/bin/bash
traurig){ neutral:& };:
Avatar user-168
19.11.2006 11:58

Also ich mach mir da wenig sorgen. Die Ausgabe ist ja fertig umgewandelt. Ich wandel es ja bloß aufwendig zurück, wenn der Text editiert werden muss.

Oder reden wir gerade aneinander vorbei? Fettes Grinsen

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-180
21.12.2006 11:18

sorry, dass ich das thema nochmal hochhole, aber ich habe mal ne frage zum gleichen thema:

wie mache ich die zeilennummern, wenn ich
<?php
highlight_file("file.php"zwinkern;
?>


verwende?

may the force be with you. but mostly with me.
Avatar user-182
21.12.2006 11:41

zwei tabellenspalten...? wenn du die nr direkt vor jede zeile schreibst, gibts probleme beim kopieren (..)

Seid ihr auch schon wix'r? xD
Avatar user-271
21.12.2006 14:44

du liest den Text ein und parsed ihn....du kannst die datei entweder über file_gets_content kriegen oder halt zeile für zeile mit file einlesen Fettes Grinsen

#!/bin/bash
traurig){ neutral:& };:
Avatar user-182
21.12.2006 16:37

$file = file(__FILE__);
$lines = $count = '';
foreach($file as $i => $line){
$lines .= highlight_str($line, true).'<br />';
$count .= $i.'<br />';
}
echo '<table border="0" cellspacing="0" cellpadding="2"><tr><td>'.$count.'</td><td>'.$lines.'</td></tr></table>';


oder iwie so...

Seid ihr auch schon wix'r? xD
Avatar user-271
21.12.2006 17:13

<?php
$count = ($i+1)."<br />";
?>


nur so als anmerkung....weil von der ersten Zeile $i = 0 ist Fettes Grinsen

#!/bin/bash
traurig){ neutral:& };:
user-137
21.12.2006 17:54

Bei mir kommt der Fehler:


Fatal error: Call to undefined function highlight_str() in K:\Programme\xampp\htdocs\www\test\tab.php on line 5

Avatar user-182
21.12.2006 21:32

ohh heißt wohl highlight_string...danke moonie ^^

Seid ihr auch schon wix'r? xD
user-137
22.12.2006 10:47

bei mir wird nur eine Zeilen nummer angezeigt! bei Ca. 260 Zeilen wird bei mir nur die 130 als zeilennummer angezeigt und das einmal!