problema con le stringhe

Premetto che con php e' la prima volta che ho a che fare!

Sto scrivendo uno script che legge una pagina html e ne analizza il contenuto, il problema e' che quando leggo il contenuto la variabile che sto usando $buffer="" arriva fino a 1024 caratteri dopodiche' non ne mette altri (verificato con xdebug, sto lavorando in eclipse) e non genera neanche nessun'errore (flag di errore in php.ini settato su E_ALL).

Credo che sia un problema della mia installazione di php (Ho usato wamp 2.1), a quanto ho letto in giro le stringhe non dovrebbero avere limitazioni di lunghezza (ram a parte naturalmente)

Incollo qui il codice della funzione che dovrebbe leggere l'html

require('httpclient/http.php');

function get_html_file($url, $cookie, $method, $values) {
   $buffer = "";
   
   if (!isset($method)) 
      $method='GET';
   
   set_time_limit(0);
   $http=new http_class;

   $http->timeout=0;
   $http->data_timeout=0;
   $http->debug=0;
   $http->html_debug=0;
   $http->user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
   $http->follow_redirect=1;
   $http->redirection_limit=5;
   $http->exclude_address="";
   $http->prefer_curl=1;
   $error=$http->GetRequestArguments($url, $arguments);
   $arguments["Headers"]["Pragma"]="nocache";
   $arguments["RequestMethod"]=$method;
   if ($method=='POST'){
      $arguments["PostValues"]=$values;      
   }
   if (isset($cookie)){
      $cookie_name=$cookie['name'];
      $cookie_value=$cookie['value'];
      $cookie_expires=""; // "" for session cookies
      $cookie_uri_path="/";
      $cookie_domain=$cookie['domain'];
      $cookie_secure=0; // 1 for SSL only cookies
      $http->SetCookie($cookie_name, $cookie_value, $cookie_expiry, $cookie_uri_path, $cookie_domain, $cookie_secure);
   }
   $error=$http->Open($arguments);
   if($error=="") {
      $error=$http->SendRequest($arguments);
      if($error=="") {
         for(;;)   {
            $error=$http->ReadReplyBody($body, 1000);
            if($error!="" || strlen($body)==0)
               break;
            $buffer .= $body;
         }
      }
      $http->Close();
   }
   return $buffer;
}
inviato 5 anni fa
mperin
X 0 X

hai provato con un semplice file_get_contents('http://www.tuosito.it') ?

risposto 5 anni fa
Gianni Tomasicchio
X 0 X

Si e' stato il primo che ho usato, all'inizio credevo fosse un problema nella richiesta che facevo al sito ma poi, con la funzione che ho postato, mi sono reso conto che la risposta arrivava completa ma la stringa $buffer non va oltre i 1024 caratteri.  :o

PS: mi vien quasi da pensare che possa essere qualche impostazione del mio sistema, potrebbe essere?  ???

risposto 5 anni fa
mperin
modificato 5 anni fa
X 0 X

Alla fine ho scoperto che e' un problema di eclipse, evitate di usarlo!

Con netbeans si vedono le stringhe complete...  :tichedoff:

risposto 5 anni fa
mperin
X 0 X

io eclipse lo uso solamente come editor per php: solitamente utilizzo cms, quindi non č che debba sviluppare chissą quali script immondi, e poi non serve compilare o riavviare il server / applicazione ad ogni modifica e un semplice var_dump č pił che sufficiente (xdebug et similia mai installati), e poi direttamente sul mio browser, utilizzando una normalissima LAMP...

e non ho mai avuto problemi: a paritą di configurazione dalla mia macchina a quella di destinazione, tutto č andato sempre bene.

risposto 5 anni fa
larchitetto
X 0 X

Non capisco la correlazione tra malfunzionamento del codice php ed eclipse (che č un IDE, molto versatile).

xdebug inoltre č quasi d'obbligo installarlo per fare un corretto debug delle proprie applicazioni/script php. Aiuta moltissimo!!!

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda