ďťż

Ładny brzuch

Jako że przy odświeżaniu projektu zacząłem używać TAB'y zamiast spacji do robienia wcięć w kodzie, co z resztą jest IMO dużo lepsze, zrobiłem taki mały skrypt to tworzenia owych wcięć w już istniejących plikach. Jest on prosty i nie uwzględnia sporej ilości opcji, które powinien (choćby używanie wieloliniowych stringów). Umieszczam kod - jak się komuś przyda to używać do woli. Dodatkowo prośba - jak ktoś będzie miał chęci to proszę o rozbudowanie i zamieszczenie kodu - myślę że przyda się komuś potem, a ja nie specjalnie mam czas na wprowadzanie poprawek :(. Jak ktoś wprowadzi poprawki to pod kodem proszę dopisać co zostało zmienione/dodane/poprawione :).

<style type="text/css"> .ident { color: #A0A0A0; } .phpblock { border-top: 1px dashed #80E080; border-bottom: 1px dashed #E08080; } .lvl1 { border-left: 2px solid #A0A0F0; margin-left: 15px; padding-left: 5px; } .lvl2 { border-left: 2px solid #A0F0A0; margin-left: 15px; padding-left: 5px; } .lvl3 { border-left: 2px solid #F0A0A0; margin-left: 15px; padding-left: 5px; } </style> <pre> <?php if ((isset($_GET['fn'])) && (file_exists($_GET['fn']))) { $farr = file($_GET['fn']); $cn = count($farr); $phpopen = false; $ilvl = 0; $s = ''; for ($i=0; $i<$cn; $i++) { if (strpos($farr[$i], '<?php') !== false) { echo('<div class="phpblock">'); $s .= $farr[$i]; echo(htmlspecialchars($farr[$i])); $phpopen = true; } else if ($phpopen) { while (($farr[$i] != '') && (($farr[$i]{0} == ' ') || ($farr[$i]{0} == "\t"))) { $farr[$i] = substr($farr[$i], 1); }; // To jest php if (strpos($farr[$i], '?>') === 0) { $s .= $farr[$i]; echo(htmlspecialchars($farr[$i])); echo('</div>'); $phpopen = false; } else if (($farr[$i] != '') && ($farr[$i]{0} == '{')) { $s .= str_repeat(' ', $ilvl).$farr[$i]; echo(htmlspecialchars($farr[$i])); $ilvl++; echo('<div class="lvl'.(($ilvl-1)%3+1).'">'); } else { if (($farr[$i] != '') && ($farr[$i]{0} == '}')) { $ilvl--; echo('</div>'); }; $s .= str_repeat(' ', $ilvl).$farr[$i]; echo(htmlspecialchars($farr[$i])); }; } else { // To nie jest php $s .= $farr[$i]; echo(htmlspecialchars($farr[$i])); }; }; echo('<textarea rows="30" cols="160">'.htmlspecialchars($s).'</textarea>'); } else { Die('baddata! Użyj fn=ścieżka/do/pliku.php'); }; ?> </pre>

Pokolorowane: http://pastebin.ca/581445

// Jakby ktoś się zastanawiał czemu w php - bo w delphi/c etc. dłużej by się to pisało, a czas wykonania skryptu nie jest tutaj aż tak bardzo istotny (no chyba że ktoś chcę zrobić wcięcia w kilku milionowo linijkowym pliku ;)).
Użytkownik Ali240 edytował ten post 21 czerwiec 2007, 16:03
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •