Command line in php file

Pagina: 1
Acties:
  • 379 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • seeyou
  • Registratie: December 2005
  • Laatst online: 27-04 22:56
Ik heb de volgende script. maar het lukt me niet op de "shell_exec" te gebruiken. Mijn browser blijft maar " denken" maar geen resultaat
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
require("html2fpdf.php");
//Get file contents
$htmlFile = "tmp/test.html";
$file = fopen($htmlFile,"r");
$size_of_file = filesize($htmlFile);
$buffer = fread($file, $size_of_file);
fclose($file);
//Initialize class
//define RELATIVE_PATH,FPDF_FONTPATH if needed
$pdf=new HTML2FPDF();
$pdf->AddPage();
//Code below used only if you want relative links to be understood
//$pdf->setBasePath(dirname(__FILE__)."\".$htmlFile);//insert full path where
$pdf->WriteHTML($buffer);
$pdf->Output('c:\testen.pdf',F); //Read the FPDF.org manual to know the other options
shell_exec('C:\printen\pdfprint.exe -prompt C:\testen.pdf');


?>


Kan iemand mij helpen

Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
Paar puntjes:

1. Er zijn [php] tags, die maken je code wat beter leesbaar :)
2. Slashes escapen dingen - voor zover ik weet ook in shell_exec. Gebruik dus in plaats van C:\printen C:/printen danwel C:\\printen.
3. Je echoed het resultaat niet, dus nogal logisch dat je het niet ziet. Gebruik echo shell_exec of print shell_exec om het resultaat terug te geven naar de browser.

Zie ook de handleiding voor shell_exec.

Ik gok dat zoiets wel gaat werken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
require("html2fpdf.php");

//Get file contents
$buffer = file_get_contents('tmp/test.html');

//Initialize class
$pdf  = new HTML2FPDF();
$pdf -> AddPage();
$pdf -> WriteHTML($buffer);
$pdf -> Output('c:\testen.pdf',F); //Read the FPDF.org manual to know the other options
echo `C:/printen/pdfprint.exe -prompt C:/testen.pdf`;

[ Voor 39% gewijzigd door FragFrog op 29-12-2007 17:16 ]

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • seeyou
  • Registratie: December 2005
  • Laatst online: 27-04 22:56
Het spijt me, maar je voorbeeld werkt niet. Ik heb alle veranderingen doorgevoerd, maar ik krijg geen MSDOS scherm waarmee de file wordt geprint :'(

Acties:
  • 0 Henk 'm!

  • user109731
  • Registratie: Maart 2004
  • Niet online
Misschien draait je webserver onder een ander account. Werkt het commando wel zonder -prompt optie?

[ Voor 59% gewijzigd door user109731 op 29-12-2007 18:27 ]


Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

seeyou schreef op zaterdag 29 december 2007 @ 18:13:
Het spijt me, maar je voorbeeld werkt niet. Ik heb alle veranderingen doorgevoerd, maar ik krijg geen MSDOS scherm waarmee de file wordt geprint :'(
Die ga je nooit zien ook. :) PHP wordt op de server uitgevoerd, dus op de client zie je sowieso nooit een command prompt (DOS is al sinds NT afwezig). Op de server zal je 'm ook niet zien, aangezien PHP gewoon het commando uitvoert, en zelf de uitvoer opvangt. Er wordt dus nooit een ouput window gecreëerd.

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • seeyou
  • Registratie: December 2005
  • Laatst online: 27-04 22:56
Ik werk onder localhost :

Het resultaat wat ik wil bereiken is dat ik dus een pdf bestand genereer en deze wil ik automatisch uitprinten zonder dat adobe reader wordt gestart.

Misschien geeft dit weer nieuwe mogelijkheden

Ik wil dus de volgende command die ik bij start-> uitvoeren heb ingevuld
AcroRd32.exe /t c:/testen.pdf

[ Voor 19% gewijzigd door seeyou op 29-12-2007 18:36 ]


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Als alle gegeven hints niet helpen, lijkt het me dat je de broodnodige errors onderdrukt. Staat safe mode wel uit, staat het weergeven van errors aan, staat het error reporting level goed afgesteld etc. etc.

{signature}


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Kan iemand mij helpen
Tuurlijk, maar wat heb je zelf al geprobeerd en wat lukt er precies niet mee? Het is hier niet de bedoeling dat je je code post en hoopt dat wij het voor je gaan oplossen. Lees voor een volgende keer aub Programming Beleid - De Quickstart eens door zodat je weet welke informatie we graag terug willen zien.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

De lap code om de file binnen te halen kun je ook vervangen door:
$buffer=file("naam")

Als je de logfiles van je webserver bekijkt, kun je zien warom het mis gaat

[ Voor 114% gewijzigd door Verwijderd op 01-01-2008 19:12 ]


Acties:
  • 0 Henk 'm!

  • SeatRider
  • Registratie: November 2003
  • Laatst online: 08:10

SeatRider

Hips don't lie

Iets zegt mij dat TS verwacht dat op zijn werkstation dit gaat gebeuren :)

Nederlands is makkelijker als je denkt


Acties:
  • 0 Henk 'm!

Verwijderd

Dan wordt het lastiger om een script te schrijven. De meeste mensen hebben namelijk liever niet dat hun web-browser allemaal bestanden gaat uitvoeren.

Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
Verwijderd schreef op dinsdag 01 januari 2008 @ 19:15:
Dan wordt het lastiger om een script te schrijven. De meeste mensen hebben namelijk liever niet dat hun web-browser allemaal bestanden gaat uitvoeren.
offtopic:
Alleen als je binnen de naiefe, beperkte kaders van hedendaagse techniek blijft denken. Zelf heb ik al eens een script geschreven wat op m'n webserver draait en kan inloggen op de workstations in mijn domein om winamp te bedienen. In combinatie met een access point en een iPod touch bijvoorbeeld geeft me dat de mogelijkheid om terwijl ik in de keuken sta te koken een ander nummer op te zetten op de pc in mijn woonkamer (die weer aan m'n stereo gelinkt is), en dat is nog maar het begin. Ik heb ooit een weak AI geschreven (Fai) in PHP die een IRC class implementeerde om in een bepaald kanaal naar opdrachten te luisteren die ik via windows spraakherkenning en een bluetooth headsetje overal in m'n huis kan geven. Gekoppeld aan het script wat commando's op m'n workstations kan runnen zorgde dat ervoor dat ik simpelweg kon zeggen "Play a song by Metallica" om 'm precies dat te laten doen :)


Grote hulp daarbij was overigens psTools, een perfecte interface tussen PHP (die eigenlijk alleen simpele commando's over de commandline kan geven) en je daadwerkelijke windows screen. psExec met de -i modifier bijvoorbeeld zorgt ervoor dat het commando interacts met de usersessie, precies wat de TS wil gok ik.

En ja, natuurlijk zijn er talen beter uitgerust om userinteractie te doen. Er zijn er alleen niet zoveel die je ook simpelweg vanuit een browser uit kan voeren ;)

[ Voor 0% gewijzigd door FragFrog op 02-01-2008 11:37 . Reden: Offtopic tags toegevoegd na gezeur van Voutloos :P ]

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
offtopic:
Op zich leuk dat je zulke dingen bouwt FragFrog, maar het is echt te ver offtopic. Opscheppen kan je imo beter doen in het 'welke tools heb jij gemaakt draadje'. :>

{signature}


Acties:
  • 0 Henk 'm!

  • unclero
  • Registratie: Juni 2001
  • Laatst online: 08:50

unclero

MB EQA ftw \o/

* unclero bladert even door zijn eigen implementatie van html2pdf

Ik gooi met de Output functie de parameter "D" mee, dan pijpt ie het direct naar de browser toe, veel makkelijker ;).

Dus gewoon:
PHP:
1
2
3
4
5
6
7
8
9
ob_start();

/* bedrijfsinfo verwijderd ;) */
$pdf = new HTML2PDF();
$pdf->AddPage();
$pdf->WriteHTML($htmlBuffer);
$pdf->Output($pdf_name.".pdf","D");

ob_flush();

Quelle chimère est-ce donc que l'homme? Quelle nouveauté, quel monstre, quel chaos, quel sujet de contradiction, quel prodige!


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
Voutloos schreef op woensdag 02 januari 2008 @ 08:09:
offtopic:
Op zich leuk dat je zulke dingen bouwt FragFrog, maar het is echt te ver offtopic. Opscheppen kan je imo beter doen in het 'welke tools heb jij gemaakt draadje'. :>
offtopic:
Ik onderbouw graag m'n punten, als er reacties komen dat PHP niet bedoelt is om dingen op je workstation te laten uitvoeren vind ik het wel toepasselijk een paar voorbeelden te geven waarom het in mijn opinie juist wel goed kan gaan. Daar is in mijn opinie weinig opscheppen aan, zo spectaculair is het tenslotte niet.

Mocht je het daar niet mee eens zijn is er trouwens nog steeds de topic-report knop :>

Nouja, offtopic tags toegevoegd, zo beter? :+

[ Voor 3% gewijzigd door FragFrog op 02-01-2008 11:38 ]

[ Site ] [ twitch ] [ jijbuis ]

Pagina: 1