Ankündigung

Einklappen
Keine Ankündigung bisher.

Unix file lesen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Unix file lesen?

    Hallo,

    Ich habe von meinen Windows XP Rechner aus (wo auch php und mein Webserver - Xitami laufen) ein netzlaufwerk verbunden zu einen Linux Rechner, wo sich meine Datei die ich lesen möchte befindet!!!

    Jetzt habe ich folgendes Problem:

    Ich versuche das file folgendermaßen zu lesen:

    Code:
    $filename = "Z:/JBossRemoteDeploy/serverstat/alerts.log";
    
    if (file_exists($filename))
    {
    	print ("File is there
    ");
    }
    else
    {
    	print ("File is not there
    ");
    }
    
    $file = fopen ($filename, "r");
    while ($line1 = fgetcsv( $file, 1024, '\n'))
    {
       $line = $line1[0];
    Das File alerts.log ist im Unix format!

    Wenn ich jetzt über meinen Browser mein php script aufrufe erhalte ich folgende fehlermeldung:


    File is not there

    Warning: fopen(Z:\JBossRemoteDeploy\serverstat\alerts.log): failed to open stream: No such file or directory in D:\homepage\de\pages\dvbstatus\serverstat.php on line 33

    Warning: fgetcsv(): supplied argument is not a valid stream resource in D:\homepage\de\pages\dvbstatus\serverstat.php on line 34


    Liegt es an dem unix file oder an dem unix file system.
    Welche functionen gibt es um das zum umgehen!

    Danke für die Hilfe!

    Gernot

  • #2
    1) versuch mal anstatt der \ das hier: /
    2) ganz sicher dass der pfad stimmt ? ist laufwerk Z: standardmäßig verbunden oder braucht es vieleicht erst ne anmeldung ?
    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

    Kommentar


    • #3
      1) versuch mal anstatt der \ das hier: /
      Jo unter Windows muss es \ sein.

      Der Rest sind wohl nur Folge-Fehler, weil die Datei so nicht gefunden wurde.

      Kommentar


      • #4
        Zitat von CIX88
        1) versuch mal anstatt der \ das hier: /
        Jo unter Windows muss es \ sein.

        Der Rest sind wohl nur Folge-Fehler, weil die Datei so nicht gefunden wurde.

        bei www.php.net/fopen gefunden:

        Achten Sie auf Windows-Systemen darauf, dass Sie als Verzeichnistrenner normale Schrägstriche '/' benutzen um plattformunabhängig programmieren zu können. Sollten Sie dennoch Backslashes verwenden, vergessen Sie nicht diese zu escapen '\\'
        mfg
        robo47
        [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
        | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

        Kommentar


        • #5
          Bin mir jetzt garnicht so sicher, ob das nur bei fopen() so war ?

          Kommentar


          • #6
            hmm benutzt imho alles den gleichen wrapper würde ich sagen:

            http://www.php.net/manual/en/wrappers.php#wrappers.file

            aber warten wir mal was der OP sagt.

            mfg
            robo47
            [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
            | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

            Kommentar


            • #7
              Also jetzt habe ich alles ausprobiert

              1. /
              2. \
              3. \\

              ich glaube eher, daß es an dem Unix filesystem liegt.

              Verbunden ist das netzlaufwerk ab start, aber ich muß noch user und paßwort angeben!

              Kommentar


              • #8
                Zitat von gramesg
                Also jetzt habe ich alles ausprobiert

                1. /
                2. \
                3. \\

                ich glaube eher, daß es an dem Unix filesystem liegt.

                Verbunden ist das netzlaufwerk ab start, aber ich muß noch user und paßwort angeben!
                hmm mal versucht so drauf zuzugreifen:

                \\rechnername\pfad\zur\datei\datei.endung

                ansonsten sind meine ideen erschöpft

                mfg
                robo47
                [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                Kommentar


                • #9
                  Hallo,

                  Ich habe jetzt folgendes verusucht!

                  Datei auf meinen Rechner (Windows kopiert -> noch immer Unix format)
                  Dann mit einen Editor (UltraEdit) auf dos umgesetzt und schon funktionierts!!

                  Gibts bei php sowas wie unix to dos??

                  Kommentar


                  • #10
                    was ist denn dein problem wenn es ne unix-datei ist `? speichert dein unix vieleicht in utf-8 ? oder was ?
                    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                    Kommentar


                    • #11
                      Zitat von gramesg
                      ich glaube eher, daß es an dem Unix filesystem liegt.
                      Ich glaube eher, dass der Webserver keine Berechtigungen hat, auf Netzwerkresourcen zuzugreifen.

                      Und wofür brauchst du sowas wie Unix2Dos?

                      Gruß
                      phpfan

                      Kommentar


                      • #12
                        Unix datei funktioniert auch jedoch der zugrif auf das Unix filesystem (was über einen Samba freigegeben ist) und in Windows über normalen share mit user und password connected ist geht nicht.

                        Habe jetzt versucht das File direct unter Z abzulegen (Z ist der Samba share).

                        Jedoch mit der File angabe Z:\alerts.log oder Z:/alerts.log oder Z:\\alerts.log geht nichts.

                        Er kommt immer mit der meldung
                        Warning: file(Z:/alerts.log): failed to open stream: Invalid argument in D:\homepage\de\pages\dvbstatus\serverstat.php on line 45

                        Kommentar


                        • #13
                          Datei auf meinen Rechner (Windows kopiert -> noch immer Unix format)
                          Das wird wohl die entscheidende Änderung gewesen sein. No such file or directory hat nichts mit dem Inhalt einer Datei zu tun - der ist fopen() et al nämlich herzlich schnurz.

                          Läuft das Skript innerhalb eines Apache-Webservers und ist dieser als Dienst unter win32 installiert?
                          Falls ja, läuft das ganze (samt Skript) höchstwahrscheinlich mit den Rechten des Benutzeraccounts "localsystem", zumiondest aber nicht mit Deinem angemeldeten account - und für diesen Dienstaccount ist sicher nicht das Laufwerk z: eingerichtet.

                          Kommentar


                          • #14
                            Stimmt der lokale user wo der Xitami server läuft ist ein andere user als der wo ich mich zu dem Linux share verbinde. Kann man in php user id und password angeben

                            Kommentar


                            • #15
                              Ich habe jetzt folgende ausprobiert:

                              Jetzt habe ich mir ein Bat file geschrieben um von Z (linux Samba Share) ein File zu kopieren.

                              cpy_alert.bat

                              NET USE Z: /DELETE
                              NET USE Z: \\158.226.150.28\public pass /USER:user /PERSISTENT:NO
                              copy Z:\JBossRemoteDeploy\serverstat\alerts.log D:\homepage\de\pages\dvbstatus\alerts.log


                              Wenn ich das bat file in der Eingabeaufforderung starte läuft alles prima.

                              Starte ich es jedoch von einem PHP script aus mit:
                              $exec = "D:\homepage\de\pages\dvbstatus\cpy_alert.cmd" ;


                              erhalte ich immer folgende Fehlermeldungen:


                              D:\homepage\de\pages\dvbstatus>NET USE Z: /DELETE
                              The network connection could not be found.

                              More help is available by typing NET HELPMSG 2250.


                              D:\homepage\de\pages\dvbstatus>NET USE Z: \\158.226.150.28\public pass /USER:user /PERSISTENT:NO
                              System error 1312 has occurred.

                              A specified logon session does not exist. It may already have been terminated.

                              Ich habe mal gegoogelt aber nicht wirklich was gefunden:
                              1312
                              A specified logon session does not exist. It may already have been terminated.
                              ERROR_NO_SUCH_LOGON_SESSION

                              Mein Benutzter Webserver ist Xitami Version 2.4d9 mit der PHP Version 5.0.4

                              Ich weiß momentan nicht wiklich weiter!
                              Bin für jeden Tipp Dankbar!!

                              Gernot

                              Kommentar

                              Lädt...
                              X