Daniel#: Probleme mit Leerzeichen im Pfad

Mahlzeit!

Ich starte mit PHP eine lokale Anwendung (jaja, dazu ist es eigentlich nicht gedacht, aber lasst mich ma :-)

[code lang=php]
chdir($path);
$call = $path.$file;
pclose(popen('start /b '.$call.'', 'r'));

[code]

Das Problem dabei: Die Anwendung (M$ Office) wurde sinnigerweise darunter installiert:

C:\Programme\Microsoft Office...

Und an dem Leerzeichen stört sich das popen.
Fehlermeldung des Browsers:
"C:\Programme\Microsoft konnte nicht gefunden werden" Also Abbruch am Leerzeichen.

Ich habs schon mit %20 versucht... ohne Erfolg

Ich neige ja fast dazu, MS Office unter einem vernünftigen Pfad zu installieren.

  1. Hi,

    Ich habs schon mit %20 versucht... ohne Erfolg

    Ich weiss nicht, ob es hilft, aber hast du mal versucht um $call (einfache oder doppelte) Anfuehrungszeichen zu machen?

    Also so:
    $call = '"'.$call.'"';
    oder:
    $call = "'$call'";

    Unter Unix koennte man Leerzeichen in Pfadangaben auch mit \ (Backslash) maskieren, aber das wird dir unter Windows wohl wenig helfen.

    mfG,
    steckl

    1. Hi!

      $call = '"'.$call.'"';

      das beseitigt zwar die Fehlermeldung und ein echo gibt mir den Pfad sauber an, aber die Anwendung öffnet sich nicht, sondern nur die "taube" cmd.exe

      $call = "'$call'";

      leider immer noch Abbruch bei Leerzeichen mit selbiger Fehlermeldung

      Trotzdem vielen Dank für deine Hilfe.

    2. Yerf!

      Unter Unix koennte man Leerzeichen in Pfadangaben auch mit \ (Backslash) maskieren, aber das wird dir unter Windows wohl wenig helfen.

      Das geht auch unter Windows (zumindest den NT-basierten).

      Ansonsten hilft vielleicht ein "dir /x" um eine Schreibweise ohne Leerzeichen zu finden (gelobt sei die Abwärtskompatibilität zu DOS ;-).

      Gruß,

      Harlequin

      1. Yerf!

        Unter Unix koennte man Leerzeichen in Pfadangaben auch mit \ (Backslash) maskieren, aber das wird dir unter Windows wohl wenig helfen.

        Das geht auch unter Windows (zumindest den NT-basierten).

        Ansonsten hilft vielleicht ein "dir /x" um eine Schreibweise ohne Leerzeichen zu finden (gelobt sei die Abwärtskompatibilität zu DOS ;-).

        Ich seh bei beiden Vorschlägen auf dem Schlauch. Wo sehe ich die Schreibweise, wenn ich mit dir /x das Verzeichnis aufliste bzw. wie demaskiere  ich das Leerzeichen?

        1. Ich steh bei beiden Vorschlägen auf dem Schlauch.

          Ahhh, *ichrind

          C:\Programme\Micros~2\ hat es gebracht!

          Danke!