这是非常基本的,但在我出错的地方(学习如何实现RESTful Web服务)我感到很困惑。上下文是,我有一个简单的simulator.php文件,它模拟对我的本地PHP文件之一的HTTP请求。本地PHP文件(index.php)除了返回带有值的变量外什么都不做。所以它非常像这样:
<?php
$variable = 'hello';
return $variable;
?>
我的simulator.php文件包含以下内容:
?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/kixeye/index.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
var_dump($contents);
curl_close($ch);
?>
但是,var_dump($ contents)并没有完全吐出从index.php返回的$ variable值。我不太明白为什么不。
答案 0 :(得分:3)
return
函数之外的东西实际上不会做任何事情。您所做的cURL请求将从请求的页面返回HTML响应,因此您真正想做的是echo
响应,而不是使用return
。
只需将index.php
脚本更改为:
<?php
$variable = 'hello';
echo $variable;
?>
第二个脚本中的var_dump()
将输出hello
。
答案 1 :(得分:0)
$contents
变量将包含由Curl完成的http请求返回的网页。如果您只需要index.php
中的一个值,则只需回显它,其值将以$contents
作为字符串结束。
如果要检索多个变量,可以尝试对它们进行json编码,然后在index.php
中回显结果。然后,您必须通过json解码$contents
在第二个脚本中执行相反的操作。
或者,您可以在第一个脚本中生成并回显有效的PHP代码,然后在第二个脚本中对其进行评估,但这是非常糟糕的做法(强烈建议不要使用eval
。)
请参阅: