Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. PHP - TXT e lettura file
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      the.dream User Attivo • ultima modifica di

      PHP - TXT e lettura file

      Ringrazio preventivamente le risposte che riceverò.
      Quello che cerco di fare lo chiesi tempo fa e trovai risposta, ora però non funziona più. Devo ottenere il contenuto di una riga di un file txt (dopo la parola clients) che è presente su un'altro server. E questo contenuto dovrà rientrare nella variabile $destinatari. In questo caso la parola destinatari dovrà essere 19.

      Codice PHP

      [PHP]

      $array=file("h**p://link/nome_file.txt");
      $i=count($array)-1;
      $u=0;
      $destinatari="";
      while ($u<=$i)
      {
      if (substr($array*, 0, 5) == "clients")
      {
      $email=explode("=", $array*);
      $destinatari.=substr($email[1],0,-1)."";
      }
      $u=$u+1;
      }

      [/PHP]

      Testo file TXT

      
      clients=17
      
      clients2=<!--players-->17<!--/players-->
      
      age=1473
      
      create=-127286033
      
      

      Cosa c'è che non va?

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • T
        thedarkita ModSenior • ultima modifica di

        Ciao the_dream,

        lo script mi sembra non abbia molto senso.
        A te da quel file interessa ottenere solamente 17?

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          the.dream User Attivo • ultima modifica di

          Si solo il 17 🙂

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • T
            thedarkita ModSenior • ultima modifica di

            Prova, più semplicemente cosi:
            [php]
            $file=file_get_contents("h**p://link/nome_file.txt");
            $testo = explode('clients=', $file);
            if(isset($testo[1]))
            {
            $testo = explode("\n", $testo[1]);
            echo $testo[0]; // 17
            }
            [/php]

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • T
              the.dream User Attivo • ultima modifica di

              Ciao... ho provato e funziona, ma solo se il file si trova già nel mio sito... Se il file si trova su un'altro indirizzo non lo carica 😕
              Grazi comunque per l'aiuto che mi stai dando 🙂

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • T
                thedarkita ModSenior • ultima modifica di

                Dovrebbe funzionare senza problemi anche per file su siti esterni, sicuro di aver messo l'indirizzo correttamente?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  the.dream User Attivo • ultima modifica di

                  Non posso scriverti l'indirizzo che uso perchè non me lo permette. Ma per avere il file devo entrare nel link attaverso una porta... Esempio:
                  www . casa.blanca. it :8080 /casella/informazioni/grafici/nome_file.txt

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • T
                    thedarkita ModSenior • ultima modifica di

                    Ah ecco, allora al posto di:
                    [php]
                    $file=file_get_contents("hp://link/nome_file.txt");
                    [/php]
                    Prova con:
                    [php]
                    $file = implode ('', file ('h
                    p://link/nome_file.txt'));
                    [/php]

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • T
                      the.dream User Attivo • ultima modifica di

                      [PHP]$file = implode ('', file ('h**p://dominio:8080/hosts/public/raw_status.txt'));
                      $testo = explode('clients=', $file);
                      if(isset($testo[1]))
                      {
                      $testo = explode("\n", $testo[1]);

                      echo $testo[0];
                      }
                      [/PHP]

                      Questo è il codice che uso, ma nn va 😕

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • T
                        thedarkita ModSenior • ultima modifica di

                        Allora il problema è sempre stato dall'inizio che devi leggere da una porta diversa da quella di default, proviamo con la funzione fsockopen, il codice è un pò più lungo...
                        Supponendo di richiedere il file www.dominio.it/casella/informazioni/grafici/nome_file.txt al posto di:
                        [php]$file=file_get_contents("h**p://link/nome_file.txt"); [/php]
                        metti:
                        [php]
                        $file = '';
                        $fp = fsockopen("www.dominio.it", 8080, $errno, $errstr, 30);
                        if (!$fp) {
                        echo "$errstr ($errno)<br />\n";
                        } else {
                        $out = "GET /casella/informazioni/grafici/nome_file.txt HTTP/1.1\r\n";
                        $out .= "Host: www.dominio.it\r\n";
                        $out .= "Connection: Close\r\n\r\n";
                        fwrite($fp, $out);
                        $header = '';
                        do{
                        $header .= fgets($fp, 128);
                        }while(strpos($header, "\r\n\r\n") === false);
                        while(!feof($fp)){
                        $file.=fgets($fp, 128);
                        }
                        fclose($fp);
                        }
                        [/php]

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • T
                          the.dream User Attivo • ultima modifica di

                          Faccio prima... ti posto l'intero codice e vedi che nn va 😄 😄

                          [PHP]$file = '';
                          $fp = fsockopen("artic.nsn3.net", 8080, $errno, $errstr, 30);
                          if (!$fp) {
                          echo "$errstr ($errno)<br />\n";
                          } else {
                          $out = "GET /hosts/nsh_dewizards/public/raw_status.txt HTTP/1.1\r\n";
                          $out .= "Host: artic.nsn3.net\r\n";
                          $out .= "Connection: Close\r\n\r\n";
                          fwrite($fp, $out);
                          $header = '';
                          do{
                          $header .= fgets($fp, 128);
                          }while(strpos($header, "\r\n\r\n") === false);
                          while(!feof($fp)){
                          $file.=fgets($fp, 128);
                          }
                          fclose($fp);
                          }

                          $testo = explode('clients=', $file);
                          if(isset($testo[1]))
                          {
                          $testo = explode("\n", $testo[1]);

                          echo $testo[0];

                          $stringa_xml_doc = "
                          <?xml version="1.0" encoding="UTF-8"?>
                          <pie>
                          \t<slice title="Sevenshard">$testo[0]</slice>
                          \t<slice title="Once a day">300</slice>
                          \t<slice title="Once a week">4</slice>
                          \t<slice title="Once a week">4</slice>
                          </pie>
                          ";

                          $stringa_xml = $stringa_xml_doc;

                          $file_name = "ampie/ampie_data.xml";
                          $file = fopen ($file_name,"w");
                          $num = fwrite ($file, $stringa_xml);

                          fclose($file);

                          }

                          [/PHP]

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • T
                            thedarkita ModSenior • ultima modifica di

                            Ma se vai con il browser su: artic.nsn3.net:8080/hosts/nsh_dewizards/public/raw_status.txt il file riesci ad aprirlo?

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • T
                              the.dream User Attivo • ultima modifica di

                              Si che riesco 🙂

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • T
                                thedarkita ModSenior • ultima modifica di

                                Ho appena provato in locale sul mio pc, collegandomi a quel file, e tutto funziona correttamente.
                                Se hai messaggi di errore dovresti incollarli, altrimenti non ho modo di aiutarti.

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • T
                                  the.dream User Attivo • ultima modifica di

                                  Forse la versione di php? Io usa la 5°...

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • T
                                    thedarkita ModSenior • ultima modifica di

                                    Con la 5 non dovresti avere sicuramenti problemi, ma stai provando in locale o su un hosting?

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • T
                                      the.dream User Attivo • ultima modifica di

                                      Direttamente su hosting... Cmq per sicurezza ha inserito vari echo... e su quella della variabile file mi viene questa risposta:

                                      "Destination host forbidden"

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • T
                                        thedarkita ModSenior • ultima modifica di

                                        Potrebbe essere il provider ad impedirti la connessione esterna, puoi provare a contattarli per vedere se effettivamente c'è un blocco, perchè lo script è corretto.

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • T
                                          the.dream User Attivo • ultima modifica di

                                          Grazie... ora mi informo 🙂

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • T
                                            the.dream User Attivo • ultima modifica di

                                            Ritorno in argomento poichè a causa di un reset ho perso tutto il mio lavoro...
                                            Il codice era questo, ma non ricordo quale era l'errore. Aiuto 🙂

                                            [PHP]$file = '';
                                            $fp = fsockopen("artic.nsn3.net", 8080, $errno, $errstr, 30);
                                            if (!$fp) {
                                            echo "$errstr ($errno)<br />\n";
                                            } else {
                                            $out = "GET /hosts/nsh_dewizards/public/raw_status.txt HTTP/1.1\r\n";
                                            $out .= "Host: artic.nsn3.net\r\n";
                                            $out .= "Connection: Close\r\n\r\n";
                                            fwrite($fp, $out);
                                            $header = '';
                                            do{
                                            $header .= fgets($fp, 128);
                                            }while(strpos($header, "\r\n\r\n") === false);
                                            while(!feof($fp)){
                                            $file.=fgets($fp, 128);
                                            }
                                            fclose($fp);
                                            }

                                            $testo = explode('clients=', $file);
                                            if(isset($testo[1]))
                                            {
                                            $testo = explode("\n", $testo[1]);

                                            echo $testo[0];

                                            $stringa_xml_doc = "
                                            <?xml version="1.0" encoding="UTF-8"?>
                                            <pie>
                                            \t<slice title="Sevenshard">$testo[0]</slice>
                                            \t<slice title="Once a day">300</slice>
                                            \t<slice title="Once a week">4</slice>
                                            \t<slice title="Once a week">4</slice>
                                            </pie>
                                            ";

                                            $stringa_xml = $stringa_xml_doc;

                                            $file_name = "ampie/ampie_data.xml";
                                            $file = fopen ($file_name,"w");
                                            $num = fwrite ($file, $stringa_xml);

                                            fclose($file);

                                            }[/PHP]

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti