1

这是非常基本的,但我有点困惑我哪里出错了(学习如何实现一个 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 的值。我不太明白为什么不。

4

2 回答 2

3

return函数之外的东西实际上不会做任何事情。您发出的 cURL 请求将返回来自请求页面的 HTML 响应,因此您真正想要做的是echo响应而不是使用return.

只需将index.php脚本更改为:

<?php
$variable = 'hello';
echo $variable;
?>

而你var_dump()在第二个脚本中将输出hello.

于 2012-12-04T23:36:31.810 回答
0

$contents变量将包含使用 Curl 完成的 http 请求返回的网页。如果您只需要一个来自 的值index.php,只需回显它,它的值将以$contents字符串形式结束。

如果要检索多个变量,可以尝试 json 编码它们,然后将结果回显到index.php. 然后你必须通过 json 解码在你的第二个脚本中做相反的事情$contents

或者,您可以在第一个脚本中生成并回显有效的 php 代码,然后在第二个脚本中对其进行评估,但这是非常糟糕的做法(eval强烈建议不要使用 )。

看:

于 2012-12-04T23:32:29.970 回答