我正在努力寻找以下答案...我怀疑我真的不知道我要什么或如何问...让我描述一下:
我想从页面中获取一些链接。我只希望链接中包含以下单词的链接:“ advertid”。因此,例如,URL类似于http://thisisanadvertis.com/questions/ask。
我已经走了
<?php
// This is our starting point. Change this to whatever URL you want.
$start = "https://example.com";
function follow_links($url) {
// Create a new instance of PHP's DOMDocument class.
$doc = new DOMDocument();
// Use file_get_contents() to download the page, pass the output of file_get_contents()
// to PHP's DOMDocument class.
@$doc->loadHTML(@file_get_contents($url));
// Create an array of all of the links we find on the page.
$linklist = $doc->getElementsByTagName("a");
// Loop through all of the links we find.
foreach ($linklist as $link) {
echo $link->getAttribute("href")."\n";
}
}
// Begin the crawling process by crawling the starting link first.
follow_links($start);
?>
这将返回页面上的所有URL ...确定。因此,为了获取我想要的URL,我尝试了一些尝试,包括尝试修改getattribute部分:
echo $link->getAttribute("href"."*advertid*")."\n";
我已经尝试了几件事...但是无法得到我想要的东西。有人能指出我正确的方向吗?我有些困惑。
非常感谢。
答案 0 :(得分:1)
foreach ($linklist as $link) {
if (strpos($link->getAttribute("href"), 'advertid') !== false) {
echo $link->getAttribute("href")."\n";
}
}
答案 1 :(得分:1)
根据情况,您可以根据逻辑判断href属性是否具有所需的信息:
foreach ($linklist as $link) {
if(strpos($link->getAttribute("href"), 'advertid') >= 0) {
echo $link->getAttribute("href")."\n";
}
}
答案 2 :(得分:1)
$links = []
foreach ($linklist as $link) {
$href = $link->getAttribute("href");
if (preg_match('/.*advertid.*/', $href)) {
array_push($links, $href);
}
}
答案 3 :(得分:0)
我建议您使用PHP函数strpos
strpos至少需要两个参数,第一个是您要搜索的字符串。第二个参数是您要在第一个字符串中寻找的内容。
strpos返回字符串的位置(如果找到),或者返回false(如果找不到)。
所以您的循环看起来像:
/// Updates the left + right padding of the current text view.
/// -> leftRightPadding value = 11.0
func updateLeftRightPadding() {
let leftPadding = UIBezierPath(rect: .init(x: 0.0, y: 0.0,
width: leftRightPadding, height: contentSize.height))
let rightPadding = UIBezierPath(rect: .init(x: frame.width - leftRightPadding, y: 0.0,
width: 11, height: contentSize.height))
textContainer.exclusionPaths = [leftPadding, rightPadding]
}