可以在file_get_content中设置php吗?

时间:2017-11-02 09:17:52

标签: php html

我想问一下,我可以根据用户点击的端口使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');

但显示错误。有什么建议吗?

5 个答案:

答案 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');

'之间的字符串无法作为变量解析。