mathefritz: php, file_get_contents , verschiedene Umgebungen

Hallo miteinander,
es hat zwar mit diesem meinem Beitrag zu tun, der thread ist aber schon etwas unübersichtlich, daher dieser neue

Die Datei http://flh.lima-city.de/Zentrale/KomandoZentrale/BesucherZaehlerAusgabeFuerWirblerCH.php enthält am Schluß

<?php
$zlrfile = "http://www.wirbler.ch/CHINA3/" .   
           "BeratertätigkeitWirblerMirbler/" .
           "BeratertätigkeitWirblerMirblerBesucherZaehler.html";

echo "Zähler Beratertätigkeit: "
    . file_get_contents( $zlrfile ) ;
?>

und das funktionhiert, obwohl da auf einen externen Server zugriffen wird, nämlich wordl4you.com;
wogegen
in
http://flh.lima-city.de/Zentrale/KomandoZentrale/WEBSEITENMITZaHLER/EGON/LhrV0.php
gleicher Code nicht klappt,
und
auch der Inhalt der existierenden
Datei
http://flh.lima-city.de/Zentrale/KomandoZentrale/structure%20de%20service%20-%20Kopie/1Negotium/2Mittere/3PraetiumInfamis/4Confirmare/Lingua/Domesticus/Home1BesucherZaehler.html
auf
keine mir bekannte Weise in eine String zu lesen möglich scheint.
( von den Links die
http://flh.lima-city.de/Zentrale/KomandoZentrale/WEBSEITENMITZaHLER/EGON/LhrV0.php
ausgibt
sind nur die 2 in der 1ten Zeile schon gültig
)
DATEI
http://flh.lima-city.de/Zentrale/KomandoZentrale/BesucherZaehlerAusgabeFuerWirblerCH.php

<!DOCTYPE HTML>
<html>
<head>  
 <META HTTP-EQUIV="content-type" CONTENT="text/html" charset="utf-8">

<title>the friends of italian english simple past</title>
<style>
</style>
<link rel="stylesheet" type="text/css" href="default.css">
</head>

<body>

<nav>
<hr style="clear: right">
<p style="margin:0px">  
<a href="home.htm">Home</a>&nbsp;
<a href="tips.htm">Tipps und Tricks</a>&nbsp;
<a href="problems.htm">problem solvings</a>&nbsp;
<a href="products.htm">Produkte</a>&nbsp;
<a href="about.htm">&Uuml;ber unseren Betrieb</a>&nbsp;
<a href="contact.htm">Kontakt</a></p>
<hr>
</nav>  

<!-- Arbeitsbereich Anzeige der besuchten Webseiten in 1.: Webseitenurl 2.: Zählerstand -->

<?php
$zlrfile = "http://www.wirbler.ch/CHINA3/" .   
           "BeratertätigkeitWirblerMirbler/" .
           "BeratertätigkeitWirblerMirblerBesucherZaehler.html";

echo "Zähler Beratertätigkeit: "
    . file_get_contents( $zlrfile ) ;
?>
</body>
</html>
</body>
</html>

DATEI
``http://flh.lima-city.de/Zentrale/KomandoZentrale/WEBSEITENMITZaHLER/EGON/LhrV0.php`

<?php

include "ArrayOfUrls.php";

foreach($Sffx as $tail)
{
$comb   = PrFx  . $tail;
$file   = $comb . '.php';

echo "<a href=", "'", $file , "'", "target= '_blank'", ">", $tail , "</a>"
;
echo  " &nbsp;Besucher: "
;
echo "<a href=", "'", $comb, "BesucherZaehler.html","'",
      " target= '_blank'", ">Zähler<br><br>
     </a>"
;
echo "Test Zähler direkt: ",file_get_contents($comb . "BesucherZaehler.html"), '<br>';
} // foreach

$file = $_SERVER['DOCUMENT_ROOT'] . "/Zentrale/KomandoZentrale/" .
        "structure%20de%20service%20-%20Kopie/" .
        "1Negotium/2Mittere/3PraetiumInfamis/" .
        "4Confirmare/Lingua/Domesticus/Home1BesucherZaehler.html";

echo '<br>', "Test mit DOCUMENT_ROOT: " . file_get_contents( $file ) , '<br>';

$file = "http://flh.lima-city.de/Zentrale/KomandoZentrale/" .
        "structure%20de%20service%20-%20Kopie/1Negotium/2Mittere/" . 
        "3PraetiumInfamis/4Confirmare/Lingua/Domesticus/" .
        "Home1BesucherZaehler.html";
echo '<br>',
      "Test mit http: " . file_get_contents( $file ) , '<br>';
;
$zfile = "http://www.wirbler.ch/CHINA3/" .   
         "BeratertätigkeitWirblerMirbler/" .
         "BeratertätigkeitWirblerMirblerBesucherZaehler.html";

echo "Zähler Beratertätigkeit: ",
    . file_get_contents( $file ) ;
?>

INCLUDE DATEI ArrayOfUrls.php ZU OBIGER, im selben Ordner, wird noch wachsen

<?php
define(
"PrFx" , "../../structure%20de%20service%20-%20Kopie/"
); 
$Sffx = array(
"1Negotium/2Mittere/3PraetiumInfamis/4Confirmare/Lingua/Domesticus/Home1",
"6Impressum/LinguaSanskrit/Deliberationis/BeratertaetigkeitWirblerMirbler1",
"1Negotium/2Mittere/Lingua/Ricipere/Preisliste3b",
"6Impressum/7Avaritia/8Ductus/Lingua/Ricipere/index",
"6Impressum/LinguaSanskrit/QuestionisConformatio/indexMIRBLERPRODUKTE"
); // ENDE array Sffx

// [ 1Negotium/2Mittere/3PraetiumInfamis/Lingua/QuestionisFructus/MIRBLER SIGN UP.php
//   1Negotium/2Mittere/3PraetiumInfamis/Lingua/QuestionisFructus/WIRBLER SIGN UP2.php
//   1Negotium/2Mittere/3PraetiumInfamis/Lingua/QuestionisFructus/CIRBLER SIGN UP3.php
?>
  1. Tach!

    wogegen in
    http://flh.lima-city.de/Zentrale/KomandoZentrale/WEBSEITENMITZaHLER/EGON/LhrV0.php
    gleicher Code nicht klappt,

    Ruf die URL doch mal im Browser auf. Ich bekomme da einen Syntaxfehler angezeigt.

    dedlfix.

    1. Hallo dedlfix,
      ja,
      sorry, ist korrigiert, das Komma am Ende der letzten echo-Zeile war falsch

      1. Tach!

        sorry, ist korrigiert, das Komma am Ende der letzten echo-Zeile war falsch

        Gut. Und nun? Fehler behoben? Wenn nicht, dann musst du nun mit dem Debugging beginnen. Wenn du zum Beispiel einen Wert ausgegeben haben möchtest, und der erscheint nicht, dann forsche mit var_dump() nach, was deine Variablen enthalten und was deine Funktionsaufrufe für Rückgabewerte bringen. var_dump() gibt immer einen lesbaren Wert aus, auch bei Werten, die in PHP bei normalem echo keine Ausgabe erzeugen (Leerstring, false, null). Viele Funktionen geben im Fehlerfall ein false zurück, vermutlich auch dein file_get_contents()-Aufruf. Es ist Aufgabe des Debuggings, diese Gegebenheiten herauszufinden.

        dedlfix.

      2. Hallo mathefritz,

        So, ja, und? Was genau ist jetzt das Problem?

        Wenn ich den ersten Link anklicke, komme ich nach Home1.php in Lingua Domesticus und bekomme dies angezeigt:

        *******************************
        Home1BesucherZaehler.txt
        

        Aha. kopfkratz

        Wenn ich den zweiten Link anklicke, mault mich dein Indianerhäuptling an und sagt, dass er von Home1BesucherZaehler.html in Lingua Domesticus noch nichts gehört hätte, er mir aber nach einigem Beraten vorschlagen wolle, ich könnte ja mal mit Home1BesucherZaehler1.txt reden. Und tatsächlich hat mich dessen Pferd 16 mal angewiehert, als ich es gestriegelt habe. Hast Du da meinen Vorschlag von 13:56 Uhr teil umgesetzt, aber nicht überall txt geschrieben, wo html steht?

        Wenn das so nicht deine Erwartung ist - was ist sie dann?

        Rolf

        1. ja, das war ein test, weil ich sehen wollte ob ich dort überhaupt hinkomme; gibt hale Kuddelmuddel wenn einer ändert und andere schon probieren.

  2. Hallo mathefritz,

    wenn ich diese HTML Datei mit dem (küchen-?)lateinischen Pfad im Browser aufrufe, bekomme ich einfach einen String mit der Besucherzahl als Quelle angezeigt.

    D.h. das ist keine HTML Datei. Vielleicht scheitern deine Einleseversuche daran, dass die Datei als HTML interpretiert werden soll. Verheirate sie mal mit einem Texteditor, dann heißt sie mit Nachnamen .txt und Herr HTML-Interpreter hält sie nicht mehr für ein Nedestro-Kind

    Rolf

    --
    Dosen sind silbern
    1. Hallo Rolf B,
      danke
      für's Reinschauen; die Kl. Namen sind Macke meines Bekannten dem ich da zu helfen versuche,
      auch
      die Idee 'html' zu nehmen, ich wollte auch 'txt';
      habe jetzt alles - hoffentlich - auf 'txt' umgestellt, was aber nichts änderte;

      https://flh.lima-city.de/Zentrale/KomandoZentrale/WEBSEITENMITZaHLER/EGON/LhrV0.php
      enthielt
      noch einen Tippfehler, in der Dateinamenvariable, nun bekomme ich da beim Zugriff auf den Fremdrechner das erwartete, während von lima-city nichts komm; irgendwie find ich wohl den richtigen Pfad nicht .

      1. Hallo mathefritz,

        wenn ich auf der LhrV0.php Seite auf den ersten Link klicke, gelange ich nach

        https://flh.lima-city.de/Zentrale/KomandoZentrale/structure%20de%20service%20-%20Kopie/1Negotium/2Mittere/3PraetiumInfamis/4Confirmare/Lingua/Domesticus/Home1.php

        und dort IST ein Besucherzähler, aber er versteckt sich hinter diesem Gewimmel aus Rahmenobjekten. Sind das Kronen? Goldene Teekannen? Keine Ahnung. Aber er ist da!

        Versteckter Besucherzähler

        PS: Dein Scheunentor ist immer noch weit offen. Hast Du meine Private Nachricht entdeckt?

        Rolf

        --
        Dosen sind silbern
        1. Hallo Rolf,
          sehn
          tu ich, aber wieso's kommt, kann ich in den Kraut und Rüben meine Bekannten nicht entdecken.
          Ich
          hab in einer Kopie der LhrV0 den Rückgabewert von file_get_contents gedumpt, und natürlich ist er false, aber das ist für mich zu wenig information. Wenn man keinen Offset für file_get_contents angibt ist der doch hoffentlich 0 ?; der Pfad stimmt meine ich.

          1. Tach!

            hab in einer Kopie der LhrV0 den Rückgabewert von file_get_contents gedumpt, und natürlich ist er false, aber das ist für mich zu wenig information.

            Die Information ist, dass der Abruf misslang.

            der Pfad stimmt meine ich.

            Wenn man die URL direkt im Browser abfragt, bekommt man ein Ergebnis, also scheint der Pfad zu stimmen. Nun braucht man zu der Statusmeldung (false) noch einen Text, damit man mehr zur Ursache erfahren kann. Sollte eigentlich ausgegeben werden, wenn man das error_reporting auf E_ALL stehen hat und display_errors auf on. Und diese beiden Konfigurationswerte sollte beim Entwickeln immer in der Form gesetzt sein, damit man auf Probleme aufmerksam wird. Im Produktivbetrieb empfiehlt sich stattdessen die Ausgabe in in Logfile.

            dedlfix.

            1. Danke;
              also Syntax Fehler bekomm ich gemeldet
              aber ob und wie ich bei lima-city

              error_reporting auf E_ALL
              display_errors auf on

              setzen kann hab ich im augenblick keine Ahnung ;

              phpinfo sagt error_reporting local value 22517, master value 22517
              display_errors local value on, master value off

              1. Moin Fritz,

                also Syntax Fehler bekomm ich gemeldet

                PHP meldet einen Syntaxfehler?

                aber ob und wie ich bei lima-city

                error_reporting auf E_ALL
                display_errors auf on

                setzen kann hab ich im augenblick keine Ahnung ;

                Das Error Reporting kannst du mit der gleichnamigen Funktion in deinem Skript setzen und display_errors ist eine Konfigurationseinstellung.

                Viele Grüße
                Robert

              2. Tach!

                aber ob und wie ich bei lima-city

                error_reporting auf E_ALL
                display_errors auf on

                setzen kann hab ich im augenblick keine Ahnung ;

                Um sie in einer Konfigurationsdatei zu setzen, muss man ein paar Informationen zum System haben, um die richtige Datei zu finden. Eigentlich müssten PHP-Installationen bei Providern nur noch im FCGI- oder FPM-Modus laufen (was phpinfo() verrät) und damit .user.ini oder php.ini akzeptieren. Bei php.ini gelten nur die Exemplare, die im Verzeichnis des gestarteten Scripts liegen, .user.ini werden hingegen auch bis hoch zum DocumentRoot gesucht. Wenn phpinfo() keine dieser Dateien als verwendet listet, dann bleibt noch, zum Script-Start die Funktion error_reporting() aufzurufen, und das display_errors kann man mit ini_set() einstellen.

                phpinfo sagt error_reporting local value 22517, master value 22517
                display_errors local value on, master value off

                Also display_errors ist nicht das Problem, jedoch der Wert für error_reporting. Da fehlt E_WARNING und noch zwei weniger wichtige für ein E_ALL.

                dedlfix.

  3. Nochmal Dank an alle,
    das
    Problem war behoben als ich direkte Spaces statt der %20
    in der
    INCLUDE-DATEI ArrayOfUrls.php für LhrV0.php verwendete.
    Die
    Fehlermeldungen sagen leider no such file OR direktory, aber nicht wo in einem langem Pfad, obwohr die Info eigentlich verfügbar sein müßte.
    Ist
    noch etwas unklar, wann ' ', wann %20 wann zu verwnden ist .

    Man müßte also eigentlich den Titel des Threads ändern.

    Gute Nacht Fritz

    1. Tach!

      Ist noch etwas unklar, wann ' ', wann %20 wann zu verwnden ist .

      Im URL-Kontext ist %20 notwendig. Im Dateisystem nicht. Es sei denn, der Dateiname besteht aus diesen Zeichen.

      dedlfix.