我想问一下,我可以根据用户点击的端口使file_get_content()中的url变为可更改吗?例如,如果用户单击port2将变为
$html = file_get_contents('http://..port2.html');
如果用户点击端口3将变为
$html = file_get_contents('http://..port3.html');
我尝试将链接设置为
$html = file_get_contents('http://..port<?=$mrtg_id?>.html');
但显示错误。有什么建议吗?
答案 0 :(得分:1)
你不能这样做:
$html = file_get_contents('http://..port<?=$mrtg_id?>.html');
因为参数是单引号中的字符串文字,而php会将其解析为纯文本,因此您在file_get_contents()
中输入的内容就是:
http://..port<?=$mrtg_id?>.html
其次,您不希望在字符串上下文中使用<?= <value> ?>
,因为这用于将变量作为字符串从php 回显出来。它是<?php echo <value> ?>
的简写版本,您尝试从字符串中执行此操作,该字符串实际上被作为参数字符串值回显。
所以,你需要的是利用双引号,它允许php解析字符串中的变量:
$html = file_get_contents("http://..port{$mrtg_id}.html");
有关详细信息,请参阅此处:http://php.net/manual/en/language.types.string.php
答案 1 :(得分:0)
您可以通过更多方式实现这一目标:
$html = file_get_contents("http://..port".$mrtg_id.".html");
$html = file_get_contents("http://..port{$mrtg_id}.html");
$html = file_get_contents("http://..port{$mrtg_id}.html");
$html = file_get_contents('http://..port'.$mrtg_id.'.html');
请注意,网址附有不同的字符(&#34;,&#39;)
查看手册以获取更多信息: http://php.net/manual/en/language.types.string.php
答案 2 :(得分:0)
您不需要在此处输入PHP标记来指定值。只需简单地用变量替换如下;
i
答案 3 :(得分:0)
或者您可以使用heredoc
$html = file_get_contents(trim(<<<FILE
http://..port{$mrtg_id}.html
FILE;
));
是的,它有点矫枉过正,你可能会遇到行结尾的问题(我添加了trim()
),但有人(我不打电话给他们)在我有机会之前发布了所有简单的结果。< / p>
哦,你也可以用内爆来做到这一点
$html = file_get_contents(implode(['http://..port',$mrtg_id,'.html']));
答案 4 :(得分:0)
你可以这样做:
$url = 'http://..port'.$mrtg_id.'.html';
$html = file_get_contents($url);
您尝试的代码:
$html = file_get_contents('http://..port<?=$mrtg_id?>.html');
'
之间的字符串无法作为变量解析。