所以我查看了堆栈溢出和google并且无法找到我需要的一个很好的例子。
我在Curl中有一个URL,我有一个需要添加到URL的会话变量(打印成字符串)。
问题
我该怎么做?
这是我的代码
<?php
session_start();
echo $_SESSION['userID'];
$userId = $_SESSION['userID'];
$service_url = 'http://localhost/app/api/user/$userId.xml';
我试过
$service_url = 'http://localhost/app/api/user/echo $userId.xml';
和
$service_url = 'http://localhost/app/api/user/<?php echo $userId ?>.xml';
更新
确定完整代码,如果我将网址更改为
$service_url = 'http://localhost/app/api/user/1.xml';
一切正常,但我需要代码是动态的,具体取决于会话var
目前会话var $_SESSION['userID'];
为1
所以当前代码的工作方式与URL
的方式相同 `$service_url = 'http://localhost/app/api/user/1.xml';`
但不是
<?php
session_start();
echo $_SESSION['userID'];
$userId = $_SESSION['userID'];
$service_url = "http://localhost/app/api/user/{$userId}.xml";
$session_cookie = file_get_contents( 'session_cookie.txt' );
// set up the request
$curl = curl_init( $service_url );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ); // have curl_exec return a string
curl_setopt( $curl, CURLOPT_COOKIE, "$session_cookie" ); // use the previously saved session
// make the request
curl_setopt( $curl, CURLOPT_VERBOSE, true ); // output to command line
$response = curl_exec( $curl );
curl_close( $curl );
print "RESPONSE:\n";
var_dump( $response );
$xml=simplexml_load_file("$service_url") or die("Error: Cannot create object");
echo $xml->name . "<br>";
echo $xml->roles->item . "<br>";
echo $xml->timezone . "<br>";
相反,我得到错误
警告:simplexml_load_file
和
警告:simplexml_load_file():I / O警告:无法加载外部实体&#34; http://localhost/app/api/user/1%3Cbr%3E.xml"在第23行的C:\ wamp64 \ www \ mytest \ testfolder \ authenticated.php
答案 0 :(得分:0)
尝试
$service_url = "http://localhost/app/api/user/{$userId}.xml";
答案 1 :(得分:0)
将'更改为'。 让我解释一下原因。
“与”的区别在于“将解析$ phpVariables。
所以$service_url = "http://localhost/app/api/user/$userId.xml";
或$service_url = "http://localhost/app/api/user/{$userId}.xml";
如果由于某种原因你想保留单引号,你可以这样做:
$service_url = 'http://localhost/app/api/user/'.$userId.'.xml';
答案 2 :(得分:0)
为什么不CONCAT他们?
$service_url = 'http://localhost/app/api/user/'.$userId.'.xml';