Sto facendo una classe PHP che gestisce il traffico con l'uso di CURL e tutto funziona abbastanza bene (tranne che per i cookie ma hey è un'altra cosa). Una cosa che non funziona che grande è la funzione curl_close() e anche se non ho idea del perché ...curl_close(): non è una risorsa handle cURL valida ... ma PERCHE '?
$curlSession = &$tamperCurl->getCURLSession();
var_dump($curlSession);
curl_close($curlSession);
die();
ho chiamato in precedenza curl_exec() e tutto ha funzionato perfettamente. L'uscita questo mi sta dando è: risorse (6) di tipo (ricciolo)
Attenzione: curl_close(): 6 non è una risorsa valida handle cURL in filename.php on line
Qualcuno ha idea del perché questo sta accadendo? (il var_dump sta dicendo che è ovviamente una sessione di arricciatura).
AGGIUNTA:
A causa di problemi di copyright non riesco a postare l'intera classe TamperData atm (sarà GPL più tardi).
Ho semplificato a questo:
$tamperCurl = new TamperCurl('test.xml');
echo var_dump($tamperCurl->getCURLSession());
curl_close($tamperCurl->getCURLSession());
die();
Il costruttore di TamperCurl è così:
public function __construct($xmlFilePath, $options=null)
{
if($options != null) $this->setOptions($options);
$this->headerCounter = 0;
$this->setXMLHeader($xmlFilePath);
$this->init();
}
public function init($reuseConnection=false,$resetSettings=null)
{
$this->curlSession = curl_init();
}
nuovo la stessa uscita: risorsa (8) di tipo (arricciatura) PHP Attenzione: curl_close(): 8 non è una risorsa handle cURL valida in TamperCurl.php sulla riga 58
Provare a rimuovere '' dal metodo di chiamata. – ThiefMaster
@Briedis: non è un puntatore. E cosa succede con i punti interrogativi? Uno è abbastanza .. –
Ok il puntatore potrebbe essere un po 'confuso, ma sta uscendo da una classe. Se non utilizzassi un riferimento, verrebbe semplicemente copiato nell'istruzione return della funzione get. Lasciando intatta la variabile di istanza effettiva dell'oggetto. (Almeno è quello che penso stia succedendo). Non importa se lo faccio con o senza un riferimento però. Anche questa funzione all'interno della classe non funziona per gli stessi motivi come sopra specificato: (! $ This-> curlSession = null) \t funzione pubblica __destruct() { \t \t \t se curl_close ($ this-> curlSession) ; \t} – shokora