I am having hard time using curl PHP as I am new to PHP. The problem is that I am not getting any return value from a curl request. There is a remote file I am accessing which has this code:
$test->getCall();
public function getCall() {
$var = array('fname'=>'jack','lname'=>'williams');
return $var;
}
The script from which I am making the call.
try{
$ch = curl_init();
if (FALSE === $ch){
throw new Exception('failed to initialize');
}
curl_setopt($ch, CURLOPT_URL,"http://www.xyz.com/app/src/test.php");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $msg);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$p_result = curl_exec($ch);
var_dump($p_result);
print_r($p_result);
if (FALSE === $p_result) {
throw new Exception(curl_error(), curl_errno());
curl_close($ch);
} else{
curl_close($ch);
return $p_result;
}
}catch(Exception $e) {
trigger_error(sprintf('Curl failed with error #%d: %s',$e->getCode(), $e->getMessage()),E_USER_ERROR);
}
I don't get any value in $p_result
nor an exception curl_error()
.
No matter what you echo in your test.php
, curl will read it as a String
. In your case, you echo nothing. You call a function that returns the array, but you don't print the array, so nothing is sent to output. If you want to get the same array in requestVal.php
after curl request, you need to encode it in some way, I would suggest JSON as it's easy to start with. For a quick example, in place of $test->getCall();
you could do:
echo json_encode($test->getCall());
And in requestVal.php
:
$array = json_decode(trim($p_result), TRUE);
print_r($array);
You can find each function description at php.net
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With