1

これは非常に基本的なことですが、どこが間違っているのか (RESTful Web サービスの実装方法を学んでいるとき)、ちょっと混乱しています。コンテキストは、ローカル PHP ファイルの 1 つへの HTTP 要求をシミュレートする単純な simulator.php ファイルがあるということです。ローカル PHP ファイル (index.php) は、値を持つ変数を返すだけです。したがって、次のようになります。

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

私のシミュレーター.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()、2番目のスクリプトで出力されますhello

于 2012-12-04T23:36:31.810 に答える
0

この$contents変数には、Curl で行われた http 要求によって返される Web ページが含まれます。の値が 1 つだけ必要な場合はindex.php、それをエコーするだけで、その値が$contents文字列になります。

複数の変数を取得したい場合は、それらを json エンコードしてから、結果を にエコーすることができますindex.php。次に、2 番目のスクリプトで json デコードによって逆の操作を行う必要があります$contents

または、最初のスクリプトで有効な php コードを生成してエコーし、2 番目のスクリプトでそれを評価することもできますが、これは非常に悪い習慣です ( の使用evalは強くお勧めしません)。

見る:

于 2012-12-04T23:32:29.970 に答える