Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP exec()

Macro [16.05.2010 19:32:52]

#

Moi!

Minun pitäisi suorittaa komento exec()-funktiolla. Ongelmana on, että komento sisältää välilyöntejä.

Apache error.log kirjoitti:

'C:\Program' is not recognized as an internal or external command,
operable program or batch file.

Miten tämä korjataan?

trilog [16.05.2010 19:34:32]

#

https://www.php.net/manual/en/function.escapeshellcmd.php
https://www.php.net/manual/en/function.escapeshellarg.php

Metabolix [16.05.2010 19:38:48]

#

Käytä lainausmerkkejä ohjelman nimen ympärillä.

Macro [16.05.2010 19:43:32]

#

Eivät toimi.

Komento on muotoa

C:\hakemisto\johonkin\ohjelmaan.exe C:\Jokupolku\jokutiedosto.html /jotain(jotain,jotain) D:\Jokupolku\jokutiedosto.html

Minulla on muuttuja $komento, jossa on vastaava komento. Olen escapettanut $komento-muuttujassa \-viivat.

Muokkaus. Kun laitoin hipsut ('), sen sisään komennon ja käytin lainausmerkkejä polkujen ympärillä, se rupesi toimimaan.

Merri [17.05.2010 04:26:00]

#

'"C:\\hakemisto\\johonkin\\ohjelmaan.exe" "C:\\Jokupolku\\jokutiedosto.html" /jotain(jotain,jotain) "D:\\Jokupolku\\jokutiedosto.html"'

Jos siellä on välilöynti parametrissä, mukaanlukien ohjelman polku ja nimi, niin sitten tarvitset lainausmerkin ympärille, koska muuten ensimmäinen osa on yksi parametri ja seuraava toinen. Välilyöntiä kun käytetään erottamaan parametrit toisistaan. Lainausmerkit lisäämällä kerrotaan, että välilyönnit kuuluvat mukaan.

Eli:

'ParametriYksi ParametriKaksi ParametriKolme'
'"Parametri yksi" "Parametri kaksi" "Parametri kolme"'

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta