标签:php
为了明确说明,我完全同意网站管理员执行此操作,直到他们构建API.
我想要做的是,比如说,在网站的某个特定部分找到的数字或任何数据,尽管它的位置可以改变.
我希望做的一个例子,如果我通过file_get_contents将html存储在变量中,并想在源中找到“< p> User status:Online.< / p>”;我需要将文本存储在“status:”和“.< / p>”之间在变量中,只知道这两个字符串才能找到它,但也知道只有一种可能的情况,那两个文本在同一行
编辑:我似乎忘记了最重要的部分.好吧,问题是如何做我刚刚描述的内容,如果你有很多文本,我怎样才能找到一段文本和另一段文本之间的内容,并将其存储在变量中?
解决方法:
刮网站有几种方法,一种是使用CSS Selectors,另一种是使用XPath,它们都选择DOM中的元素.
由于我无法看到网页的完整HTML,因此我很难确定哪种方法更适合您.还有另一种选择可能不赞成,但在这种情况下它可能会起作用.
您可以使用Regex (regular expressions)查找字符,我不是最好的正则表达式,但这里有一些示例代码,说明它可能如何工作:
$subject = "
Some User
User status: Online.
";$pattern = '/User status: (.*)\/';
preg_match($pattern, $subject, $matches);
print_r($matches);
?>
样本输出:
Array
(
[0] => User status: Online.
[1] => Online.
)
基本上上面的正则表达式是匹配模式,在这种情况下,它查找字符串“用户状态:”然后匹配所有字符(.*)直到结束段落标记(转义).
这里的模式只返回“在线”而没有句点,不确定所有状态是否在一段时间内结束但是这里的样子如下:
'/User status: (.*)\.\/'
标签:php
来源: https://codeday.me/bug/20190522/1153633.html