Je voulais passer à la POO et essayer de le comprendre. Jusqu'ici j'ai fait mon premier cours. Voici le code. (Le problème est avec la fonction SCURL() et les valeurs de retour et d'y accéder droitClasse PHP renvoyant des valeurs et des variables de réglage
class CURL {
public $url;
private $header = false; // DISPLAY HEADERS (FALSE OR TRUE)
private $follow = true; // FOLLOW REDIRCETS (FALSE OR TRUE)
private $useragent = "Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1)"; // SET USER AGENT e.g. "Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1)"
private $referer = "http://www.google.com"; // SET REFERER e.g. http://www.google.com
private $ssl = false; // If set false (it accpets any ssl) should false
private $ctimeout = 5; // Timeout for connect in SECs when curl does next url
private $timeout = 60; // Timeout of retriving page in SECs when curl does next url
public function setHeader($header) {
$this->header = $header;
}
public function setFollow($follow) {
$this->follow = $follow;
}
public function setUseragent($useragent) {
$this->useragent = $useragent;
}
public function setReferer($referer) {
$this->referer = $referer;
}
public function setSsl($ssl) {
$this->ssl = $ssl;
}
public function setCtimeout($ctimeout) {
$this->ctimeout = $ctimeout;
}
public function setTimeout($timeout) {
$this->timeout = $timeout;
}
public function __construct($url) {
$this->url = $url;
}
public function sCURL() {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_HEADER, $this->header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $this->follow);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, $this->useragent);
curl_setopt($ch, CURLOPT_REFERER, $this->referer);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->ssl);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->ctimeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
}
et ce sont les résultats.
object(CURL)#1 (9) {
["url"]=>
string(23) "http://www.facebook.com"
["header:private"]=>
bool(false)
["follow:private"]=>
bool(true)
["useragent:private"]=>
string(49) "Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1)"
["referer:private"]=>
string(21) "http://www.google.com"
["ssl:private"]=>
bool(false)
["ctimeout:private"]=>
int(5)
["timeout:private"]=>
int(60)
["data"]=>
NULL
}
comme vous pouvez le voir « données » = NULL.
que j'ai remplacé cette paix du Code
$data = curl_exec($ch);
curl_close($ch);
return $data;
avec ceci:
$this->data = curl_exec($ch);
curl_close($ch);
return $this->data;
et maintenant ce sont les résultats (de travail):
object(CURL)#1 (9) {
["url"]=>
string(23) "http://www.facebook.com"
["header:private"]=>
bool(false)
["follow:private"]=>
bool(true)
["useragent:private"]=>
string(49) "Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.1)"
["referer:private"]=>
string(21) "http://www.google.com"
["ssl:private"]=>
bool(false)
["ctimeout:private"]=>
int(5)
["timeout:private"]=>
int(60)
["data"]=>
string(33320) "<!DOCTYPE html>.........STRIPPED OUTBUT THATS WHAT I WANTED........"
Ok, donc voilà comment j'appelle la classe
$data1 = new Curl("http://www.facebook.com");
$data1->sCURL();
var_dump($data1);
cela me donne les résultats ci-dessus . Voici mon problème, je veux accéder uniquement à la chose "DATA".
$data1 = new Curl("http://www.facebook.com");
$data1->sCURL();
var_dump($data1['data']);
si essayez d'accéder à 'données' clé que je reçois cette erreur
Fatal error: Cannot use object of type CURL as array in * on line 10
Alors, comment je peux accéder aux données, directement (le tableau $ data1 [ 'data'] et Aussi, pourriez-vous changer quelque chose de ma classe pour le rendre meilleur? Et pour ma compréhension, pourquoi retournent $ data; dans la première classe d'exemple non travaillée.J'ai googlé et googlé mais n'ai pas trouvé de réponse Désolé, je viens de commencer en utilisant OOP avant de faire une énorme liste de fonctions
MISE À JOUR quand je mis
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
à false
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
je peux maintenant accéder aux données
$ data1 [ 'data'], mais le problème en quelque sorte reste, $ data1 ['data'] est affiché ci-dessus à la fin je reçois ceci:
Fatal error: Cannot use object of type CURL as array in * on line
Im juste curieux, pourquoi je ne peux pas accéder si son ensemble est vrai, si quelqu'un peut m'expliquer que je serais heureux.
Nous vous remercions de votre temps.
et
MERRY XMAS :-) À TOUS
merci pour votre réponse, les travaux ci-dessus fonctionne maintenant :-) sur ce getter et setter, je ne comprends pas en quelque sorte, pour ce qui est bon et pourquoi il devrait être po – user1015314