/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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

Søg
Reklame
Statistik
Spørgsmål : 177505
Tips : 31968
Nyheder : 719565
Indlæg : 6408554
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste