我有许多具有不同查询字符串的网址,例如
view.php?id=5
view.php?id=6
view.php?id=7
在另一个php页面上我使用如下的file_get_contents:
$page = file_get_contents('view.php?id=5');
$file = 'temp/form.html';
file_put_contents($page, $file);
这当然只写第一个id'5',所以如何在这个页面上检索'id'变量并将其写在我的file_get_contents行中,这样我就不必在单独的行中写出所有的id
感谢 rifki
答案 0 :(得分:2)
如果我理解正确,在你展示的情况下你可以使用for循环或类似的东西。但这只有在ID是数字并且彼此跟随时才有效。
示例:
for($i = 5; $i <=7; $i++) {
$page = file_get_contents('view.php?id='.$i);
$file = 'temp/form.html';
file_put_contents($page, $file);
}
更新: 如果您的ID来自数据库,您可以选择所有ID并循环。 例如
$sql = 'SELECT id FROM tablename;';
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res)) {
$page = file_get_contents('view.php?id='.$row['id']);
$file = 'temp/form.html';
file_put_contents($page, $file);
}
答案 1 :(得分:2)
如果这些网址用于浏览某些网页,您可以使用$ _GET数组(Official PHP Manual for the $_GET method)。
它只是获取通过get方法传递的变量的值(即page.php?var1=1&var2=2
),因此,如果您需要获取页面的id值,代码应该是这样的:
$id = $_GET['id'];
$request = 'view.php?id='.$id;
$page = file_get_contents($request);
$file = 'temp/form.html';
file_put_contents($page, $file);
第一行获取通过url传递的id,然后第二行创建请求字符串以传递给file_get_contents
函数,然后另一行就像你的代码。
如果您从这些页面内部请求数据就是这种情况,例如,如果您知道所需的所有页面,那么您可以使用for
子句来解决此问题。
其中一个解决方案可能是:
$first_page = 5;
$last_page = 7;
for ($i = $first_page; $i <= $last_page; $i++) {
$request = 'view.php?id='.$i;
$page = file_get_contents($request);
$file = 'temp/form.html';
file_put_contents($page, $file);
}
有了这个,您只需设置要请求的第一页和最后一页,然后使用这些值循环浏览页面然后调用您的函数来执行您的...“东西”:D
这是一种很好的方法,因为您可以在运行时设置for
语句的值,这样您就不必每次都更改该文件。
但是我认为使用与整数不同的标识可以更好,例如id=home
,或类似的东西。
答案 2 :(得分:1)
如果你在查询字符串中得到id我的意思是url,你应该写这样的东西:
$page = file_get_contents('view.php?id='.$_GET['id']);
$file = 'temp/form_'.$_GET['id'].'.html';
file_put_contents($page, $file);
答案 3 :(得分:0)
要从查询字符串中检索变量,请使用
<强> $ _ GET [ '变量名'] 强>
默认情况下,每当您向服务器发出请求时,都会调用GET方法,除非您明确指定表单方法为POST。
// variable_name是查询字符串
中变量的名称