ďťż

[PHP]Wyswietlanie kodu innego języka programowania

       

Podstrony


telcocafe

Witam.
Mam następujący problem - chcem wczytac z pliku txt kod napisany np w C++ i wyswietlić go na stronie. I teraz - czy istnieja funkcja która spowoduje prawidłowe wyświetlenie kodu a nie jego wykonanie??? (nie chcę aby przypadkiem kod nie został wykonany)



przecież PHP nie potrafi interpretować języka C++ :blink:

ale nie wystąpiąjakieś błędy gdy w zmiennej która zostanei wyświetlona za pomoca echo znajduje sie kawałek kodu c++ (niektóre funkcji z c++ i php mają takie same nazwy)????
Użytkownik DarkCez edytował ten post 17 lipiec 2006, 08:38
normalnie wyświetlasz echem tylko daj wszystko w pojedyńcze cudzysłowy np.
echo 'tekst który będzie ignorować drugie echo';



ale tekst jest w zmiennej, więc nie moge dac '' tylko ""

Nie będzie żadnego konfliktu, wykonanie kodu z pliku może nastąpić za pomocą eval(), samo echo tylko wyświetli kod.
Jeszcze zainteresuj się show_source()

z tego co wywnioskowałem to chcesz w PHP wyświetlić kod C++ na stronce tak? Więc spróbuj tak:

<?php readfile("kod.txt"); ?>

Krótko, zwięźle i fajnie ;p


Nie będzie żadnego konfliktu, wykonanie kodu z pliku może nastąpić za pomocą eval(), samo echo tylko wyświetli kod.
Jeszcze zainteresuj się show_source()

a raczej highlight_file( ) (show_source to alias ;-))

a po 2gie on ma kod cepa, a ta funkcja koloruje php :-)

Dodam tylko, że jeżeli chcesz mieć pokolorowaną składnię najlepiej użyć GeSHi.


Dodam tylko, że jeżeli chcesz mieć pokolorowaną składnię najlepiej użyć GeSHi.

Nie podoba mi się to GeSHi, do kodu wrzuca '\' a także twoży jakies niepotrzebne linki. Jelsi ktoś będize chciał wykorzystać kode ze strony bedzie musiał usuwac te '\'.

Mam jescze jedno pytanie. Wczytuje kod z pliku txt w następujący sposób:
$handle = fopen($sciezka, "r"); $zawartosc = fread($handle, filesize($sciezka)); fclose($handle); echo $zawartosc;

NIe używam readfile() po wczytany tekst muszę poddać jeszcze obróbce. Jest tylko jeden problem - tekst wyswietlany na stronie jest rozwalony, ukłąd lini nie jets taki jak w pliku, tekst jest wyświetlany ciągiem. Ktoś wie moze jak wyswietlić tekst w takiehj formie jak znajduje sie w pliku, albo jak dodac znacznik <br> na koncu każdej linii??


Mam jescze jedno pytanie. Wczytuje kod z pliku txt w następujący sposób:
$handle = fopen($sciezka, "r"); $zawartosc = fread($handle, filesize($sciezka)); fclose($handle); echo $zawartosc;

NIe używam readfile() po wczytany tekst muszę poddać jeszcze obróbce. Jest tylko jeden problem - tekst wyswietlany na stronie jest rozwalony, ukłąd lini nie jets taki jak w pliku, tekst jest wyświetlany ciągiem. Ktoś wie moze jak wyswietlić tekst w takiehj formie jak znajduje sie w pliku, albo jak dodac znacznik <br> na koncu każdej linii??
$handle = fopen($sciezka, "r+b"); $zawartosc = fread($handle, filesize($sciezka)); fclose($handle); $zawartosc = nl2br($zawartosc); echo $zawartosc;

ok wielkie dizęki, o to chodziło. NIe chcem zakłądać kolejnego tematu, więć korzystając z okazji zapytam tu. Dlaczego gdy przesyłąm jakis tekst metodą POST a w tekście znajdują się znaki "" to jest dostawiany '\' przed każdym ". Jak można tego uniknąc??

Daj wtedy:
stripslashes($_POST['zmienna'])
ew. Wyłacz magic_quotes


Nie podoba mi się to GeSHi, do kodu wrzuca '\'
Gdzie tam... Pewnie coś namieszałeś ;) Gdyby tak było ludzie by sobie tego skryptu tak nie chwalili, nie?

a także twoży jakies niepotrzebne linki
Kwestia ustawień w konfigu...
Po za tym są przydatne, chociażby za przykład posłużę się 4p + kolorowanie składni Delphi, gdzie są linki do procedur/funkcji, typów, słów kluczowych - niezmiernie przydatna sprawa; czy też linki do funkcji z (pl.)php.net w kolorowaniu PHP :>


Gdzie tam... Pewnie coś namieszałeś wink2.gif Gdyby tak było ludzie by sobie tego skryptu tak nie chwalili, nie?

sorry, pozniej doszedłem że te '\' nie jets winą GeSHi tylko przesyłania tekstu przez POST.
Mogłbyś powiedzieć jak wyłaczyć tworzenie tych linków??


Mogłbyś powiedzieć jak wyłaczyć tworzenie tych linków??
Zobacz jak to jest na 4p:
http://cvs.4programm...pe=text%2Fplain
'URLS' => array( 1 => '', 2 => '', 3 => 'http://www.php.net/{FNAME}', 4 => '' ),
Wystarczy zamianić na:
'URLS' => array( 1 => '', 2 => '', 3 => '', 4 => '' ),
Tzn. tak przypuszczam ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.