|
| Få PHP til at starte et PERL script Fra : Stefan Bruhn |
Dato : 09-03-02 19:24 |
|
Hej!
Jeg prøver at få PHP til at starte et PERL script således:
if (noget) {
passthru("script.pl et_argument &",$output);
echo $output;
exit;
}
(....)
Og får denne fejl.
/path/to/pics/thumbs/tn_pic.01.jpg
Failed to parse info:
0
Det ser jo ud til at det er PERL scriptet den er gal med, men hvis jeg
siger C&P kommandoen lige ind i en shell så udfører den PERL scriptet
uden problemer.
Nogen ideer? Jeg har prøvet med system(), exec() og backticks også.
Mvh. / Regards Stefan Bruhn
--
<?$email = unserialize("a:15:{i:0;i:115;i:1;i:116;i:2;i:101;i:3;i:102
;i:4;i:97;i:5;i:110;i:6;i:64;i:7;i:98;i:8;i:114;i:9;i:117;i:10;i:104
;i:11;i:110;i:12;i:46;i:13;i:116;i:14;i:111;}");
for ($i=0;$i<=15;$i++) {echo chr($email[$i]);}?>
| |
Peter Brodersen (10-03-2002)
| Kommentar Fra : Peter Brodersen |
Dato : 10-03-02 02:02 |
|
On Sat, 09 Mar 2002 19:23:53 +0100, Stefan Bruhn <devnull@bruhn.tk>
wrote:
>Jeg prøver at få PHP til at starte et PERL script således:
[..]
>passthru("script.pl et_argument &",$output);
Når du kører kommandoer, vil det kun være stdout, du modtager. Prøv
følgende kommando i stedet for:
script.pl et_argument 2>&1
I øvrigt: passthru giver kun returværdien, ikke selve outputtet. Prøv
med backticks, og for en god ordens skyld, lad ikke programmet køre i
baggrunden, mens du tester. Dvs:
$output = `script.pl et_argument 2>&1`;
echo $output;
--
- Peter Brodersen
| |
Stefan Bruhn (10-03-2002)
| Kommentar Fra : Stefan Bruhn |
Dato : 10-03-02 13:28 |
|
On Sun, 10 Mar 2002 02:02:00 +0100, Peter Brodersen
<professionel@nerd.dk> wrote:
>$output = `script.pl et_argument 2>&1`;
>echo $output;
Ok, nu får jeg da noget mere håndgribeligt, men jeg fatter det stadig
ikke:
/path/to/thumbs/tn_aeoth.01.jpg
Illegal division by zero at /bin/artgallery.pl line 43.
Failed to parse info:
Linie 43 og 44 (selve hjertet i scriptet næsten, beslutter størrelsen på
output billederne)
$newx = int($x / (sqrt($x * $y) / sqrt($pixelcount)));
$newy = int($y / (sqrt($x * $y) / sqrt($pixelcount)));
Hvordan hulen kan det være division by zero når det køres via PHP men
ingen fejl når det køres direkte.
Mvh. / Regards Stefan Bruhn
--
<?$email = unserialize("a:15:{i:0;i:115;i:1;i:116;i:2;i:101;i:3;i:102
;i:4;i:97;i:5;i:110;i:6;i:64;i:7;i:98;i:8;i:114;i:9;i:117;i:10;i:104
;i:11;i:110;i:12;i:46;i:13;i:116;i:14;i:111;}");
for ($i=0;$i<=15;$i++) {echo chr($email[$i]);}?>
| |
Peter Brodersen (11-03-2002)
| Kommentar Fra : Peter Brodersen |
Dato : 11-03-02 07:54 |
|
On Sun, 10 Mar 2002 13:27:49 +0100, Stefan Bruhn <devnull@bruhn.tk>
wrote:
> $newx = int($x / (sqrt($x * $y) / sqrt($pixelcount)));
> $newy = int($y / (sqrt($x * $y) / sqrt($pixelcount)));
>
>Hvordan hulen kan det være division by zero når det køres via PHP men
>ingen fejl når det køres direkte.
Kunne det tænkes, at du går ud fra at værdier bliver overført fra PHP
til perlscriptet?
Men del din kode op, og tjek løbende hvad det er, der giver den
division by zero. Det burde være til at finde ud af.
--
- Peter Brodersen
| |
Stefan Bruhn (11-03-2002)
| Kommentar Fra : Stefan Bruhn |
Dato : 11-03-02 09:38 |
|
On Mon, 11 Mar 2002 07:53:52 +0100, Peter Brodersen
<professionel@nerd.dk> wrote:
>Kunne det tænkes, at du går ud fra at værdier bliver overført fra PHP
>til perlscriptet?
Nope, der er ingen variabler i PHP scriptet som har nogen betydning. Den
får sine variabler ved at analysere billedet der er angivet som
parameter.
>Men del din kode op, og tjek løbende hvad det er, der giver den
>division by zero. Det burde være til at finde ud af.
Der er jo som sådan ikke noget galt med koden når det virker uden
problemer skrevet i BASH'en, eller er det mig der misforstår?
Mvh. / Regards Stefan Bruhn
--
<?$email = unserialize("a:15:{i:0;i:115;i:1;i:116;i:2;i:101;i:3;i:102
;i:4;i:97;i:5;i:110;i:6;i:64;i:7;i:98;i:8;i:114;i:9;i:117;i:10;i:104
;i:11;i:110;i:12;i:46;i:13;i:116;i:14;i:111;}");
for ($i=0;$i<=15;$i++) {echo chr($email[$i]);}?>
| |
Peter Brodersen (11-03-2002)
| Kommentar Fra : Peter Brodersen |
Dato : 11-03-02 10:34 |
|
On Mon, 11 Mar 2002 09:37:41 +0100, Stefan Bruhn <news005@3x7.dk>
wrote:
>>Men del din kode op, og tjek løbende hvad det er, der giver den
>>division by zero. Det burde være til at finde ud af.
>Der er jo som sådan ikke noget galt med koden når det virker uden
>problemer skrevet i BASH'en, eller er det mig der misforstår?
perl går ikke i stykker af sig selv. Debug koden, fx ved at outputte
værdien af $x, $y og $pixelcount løbende.
--
- Peter Brodersen
| |
Stefan Bruhn (11-03-2002)
| Kommentar Fra : Stefan Bruhn |
Dato : 11-03-02 19:42 |
|
On Mon, 11 Mar 2002 10:34:19 +0100, Peter Brodersen
<professionel@nerd.dk> wrote:
>On Mon, 11 Mar 2002 09:37:41 +0100, Stefan Bruhn <news005@3x7.dk>
>wrote:
>
>>>Men del din kode op, og tjek løbende hvad det er, der giver den
>>>division by zero. Det burde være til at finde ud af.
>>Der er jo som sådan ikke noget galt med koden når det virker uden
>>problemer skrevet i BASH'en, eller er det mig der misforstår?
>
>perl går ikke i stykker af sig selv. Debug koden, fx ved at outputte
>værdien af $x, $y og $pixelcount løbende.
Ok, det er her det fejler med denne linie:
$info = `identify $file`;
Hvis jeg nedenunder den skriver
print $info;
Får jeg kørt gennem PHP scriptet intet resultat, men kørt fra kommando
linien kommer der noget frem.
Og det er også her parse error bliver udprintet:
if ($info =~ m#[^ ]+ (\d+)x(\d+)#)
{
$x = $1;
$y = $2;
} else {
print "Failed to parse info:$info\n";
}
Mvh. / Regards Stefan Bruhn
--
<?$email = unserialize("a:15:{i:0;i:115;i:1;i:116;i:2;i:101;i:3;i:102
;i:4;i:97;i:5;i:110;i:6;i:64;i:7;i:98;i:8;i:114;i:9;i:117;i:10;i:104
;i:11;i:110;i:12;i:46;i:13;i:116;i:14;i:111;}");
for ($i=0;$i<=15;$i++) {echo chr($email[$i]);}?>
| |
Peter Brodersen (12-03-2002)
| Kommentar Fra : Peter Brodersen |
Dato : 12-03-02 11:15 |
|
On Mon, 11 Mar 2002 19:41:40 +0100, Stefan Bruhn <devnull@bruhn.tk>
wrote:
>Ok, det er her det fejler med denne linie:
>
>$info = `identify $file`;
Så må du jo bare grave lidt mere i det, fx:
$cmd = "identify $file";
print "Jeg kører lige følgende kommando: $cmd<br>\n";
$info = `$cmd 2>&1`;
print "Output fra kommando: $info";
Så kan du både få set hvad kommando, der præcis bliver kørt, samt evt.
fejlmeddelelsen (pga. 2>&1, hvor stderr bliver lagt til stdout).
--
- Peter Brodersen
| |
Stefan Bruhn (13-03-2002)
| Kommentar Fra : Stefan Bruhn |
Dato : 13-03-02 16:22 |
|
On Tue, 12 Mar 2002 11:14:43 +0100, Peter Brodersen
<professionel@nerd.dk> wrote:
>Så må du jo bare grave lidt mere i det, fx:
>
>$cmd = "identify $file";
>print "Jeg kører lige følgende kommando: $cmd<br>\n";
>$info = `$cmd 2>&1`;
>print "Output fra kommando: $info";
>
>Så kan du både få set hvad kommando, der præcis bliver kørt, samt evt.
>fejlmeddelelsen (pga. 2>&1, hvor stderr bliver lagt til stdout).
Jeg kører lige følgende kommando: identify
/path/to/pics/aeoth.01.jpg<br>
Illegal division by zero at /bin/gallery.pl line 48.
Output fra kommando:
Failed to parse info:
Det er altså lidt for mystisk til min smag.
Mvh. / Regards Stefan Bruhn
--
<?$email = unserialize("a:15:{i:0;i:115;i:1;i:116;i:2;i:101;i:3;i:102
;i:4;i:97;i:5;i:110;i:6;i:64;i:7;i:98;i:8;i:114;i:9;i:117;i:10;i:104
;i:11;i:110;i:12;i:46;i:13;i:116;i:14;i:111;}");
for ($i=0;$i<=15;$i++) {echo chr($email[$i]);}?>
| |
Chano Andersen (14-03-2002)
| Kommentar Fra : Chano Andersen |
Dato : 14-03-02 14:15 |
|
On Wed, 13 Mar 2002 16:22:07 +0100, Stefan Bruhn <devnull@bruhn.tk> enlightend everyone in dk.edb.internet.webdesign.serverside.php with:
>Jeg kører lige følgende kommando: identify
>/path/to/pics/aeoth.01.jpg<br>
Skal den der <br> være der?
--
Chano Andersen (chano@mrfunny.yi.org)
MSN Messenger: chano_andersen@hotmail.com ICQ: 15377564
Yahoo! Messenger: mrfunny_dk AIM: mrfunnydk1
http://mrfunny.yi.org/ | http://www.nikkiwebster.dk/
| |
Peter Brodersen (14-03-2002)
| Kommentar Fra : Peter Brodersen |
Dato : 14-03-02 15:02 |
|
On Thu, 14 Mar 2002 14:14:59 +0100, spamtrap@mrfunny.yi.org (Chano
Andersen) wrote:
>>Jeg kører lige følgende kommando: identify
>>/path/to/pics/aeoth.01.jpg<br>
>
>Skal den der <br> være der?
Det var vel blot outputtet ud fra min kommando? Gik ud fra at den blev
vist på en webside.
--
- Peter Brodersen
| |
|
|