当我按某个网页的“查看源代码”时,它有点像这样:
<form action="/WANem/index-advanced.php" method="post">
<table border="1" width="100%">
<tr>
<td width="10%" >Delay time(ms) </td>
<td width="10%" ><input type="text" name="txtDelay1" size="7" value=1200>
</td>
<input type="submit" value="Apply settings" name="btnApply">
</table>
</form>
我的问题是:如何使用PHP在代码中获得'1200'。 我的意思是我只想在另一个网站的html代码中获得某个字符串,而不必按“查看源代码”并复制该字符串。 谢谢你的回复。
答案 0 :(得分:1)
您尝试做的事情称为“网络抓取”。
这是一个StackOverflow问题,其中包含许多有用的答案:
How to implement a web scraper in PHP?
这是一个教程,可能比我在这里输入更好地解释它:
http://www.thefutureoftheweb.com/blog/web-scrape-with-php-tutorial
希望它有所帮助,祝你好运!
答案 1 :(得分:0)
在你的php文件中,它就像这样简单:
$value = $_POST['txtDelay1'];
虽然,它看起来是一个非常基本的问题。我建议你通过一些教程,了解它是如何工作的。
首先在谷歌php form tutorial
:http://www.phpf1.com/tutorial/php-form.html
哦,现在我看到你的编辑了。在这种情况下,您不能像浏览器那样跳过发送http请求来获取源代码。接下来,您必须解析来自服务器的响应,就像浏览器一样。啊,响应将是你要求的“源代码”。如果可以,请考虑使用python。它会更快更有效率。
如果PHP是必须的,请注意这个任务很痛苦;)
答案 2 :(得分:0)
您可以使用file_get_contents()和preg_match()执行此操作。
//$url is whatever your URL is
$url = file_get_contents($url);
preg_match('|name="txtDelay1".*?value=([\d]+)|', $html, $html);
echo $html[1];
//should print your value 1200
查看正则表达式here。
只要此代码准确显示且不重复,这只会起作用。此外,如果您要从其他网站进行抓取,则可以由所有者进行更改,并且正则表达式将不再有效。