将变量从文本框传递到Digital Ocean的API URL

时间:2014-05-08 15:30:09

标签: php api digital-ocean

我正在尝试获取以下网址,以使用Digital Oceans API更改服务器的主机名

<a href=\"https://api.digitalocean.com/droplets/$serverid/rename/?client_id=$myClientID&api_key=$myDOApi&name=newHostName\" target=\"_blank\">
<font color=\"#CCFB5D\">Rename</font></a>

如果我在代码中手动输入新的主机名,这个链接可以正常工作,但是如何在提交时使用PHP将newHostName变量从文本框传递到URL中?

1 个答案:

答案 0 :(得分:0)

这是您提供的代码:

<a href=\"https://api.digitalocean.com/droplets/$serverid/rename/?client_id=$myClientID&api_key=$myDOApi&name=newHostName\" target=\"_blank\">
<font color=\"#CCFB5D\">Rename</font></a>

然后你说:

…but how would I pass a newHostName variable from a text box into the url with PHP as it is submitted?

为什么不直接制作这样的网址并将$newHostName设为变量$newHostName

https://api.digitalocean.com/droplets/$serverid/rename/?client_id=$myClientID&api_key=$myDOApi&name=$newHostName

但你的代码缺乏。为什么双引号会像\"一样被转义?你有一个PHP标签,但实际的PHP在哪里?它已经是已经存在双引号的较大字符串的一部分吗?

假设有诚意,为什么你的代码不能像现在这样呢?

echo '<a href="https://api.digitalocean.com/droplets/' . $serverid . '/rename/?client_id=' . $myClientID . '&api_key=' . $myDOApi . '&name=' . $newHostName . '" target="_blank">
<font color="#CCFB5D">Rename</font></a>';

或者使用sprintf来提高可读性:

echo sprintf('<a href="https://api.digitalocean.com/droplets/%s/rename/?client_id=%s&api_key=%s&name=%s" target="_blank">', $serverid, $myClientID, $myDOApi, $newHostName)
   . '<font color="#CCFB5D">Rename</font></a>'
   ;