Это поддерживается на IE8 +.
Сначала мы проверяем, существует ли classList
, если это возможно, мы можем использовать метод contains
, который поддерживается IE10 +. Если мы находимся на IE9 или 8, он возвращается к использованию регулярного выражения, которое не так эффективно, но является кратким полифоном.
if (el.classList)
el.classList.contains(className);
else
new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);
Используйте PHP DomDocument
для разбора страницы
$doc = new DOMDocument();
// load the string into the DOM (this is your page's HTML), see below for more info
$doc->loadHTML('<a href="http://www.google.com">Google</a>');
//Loop through each <a> tag in the dom and change the href property
foreach($doc->getElementsByTagName('a') as $anchor) {
$link = $anchor->getAttribute('href');
$link = 'http://www.example.com/?loadpage='.urlencode($link);
$anchor->setAttribute('href', $link);
}
echo $doc->saveHTML();
Проверьте здесь: http://codepad.org/9enqx3Rv
Если у вас нет HTML в виде строки, вы можете использовать cUrl ( docs ), чтобы захватить HTML, или вы можете использовать метод loadHTMLFile
для DomDocument
Документация
DomDocument
- http://php.net/manual/en/class.domdocument.php DomElement
- http://www.php.net/manual/en/class.domelement.php DomElement::getAttribute
- http://www.php.net /manual/en/domelement.getattribute.phpDOMElement::setAttribute
- http://www.php.net/manual/en/domelement.setattribute.php urlencode
- http://php.net/manual/en/function.urlencode.php DomDocument::loadHTMLFile
- http://www.php.net/manual/en/domdocument.loadhtmlfile.phpПроще всего я могу это сделать:
$loader = "http://www.example.com?loadpage=";
$page_contents = str_ireplace(array('href="', "href='"), array('href="'.$loader, "href='".$loader), $page_contents);
Но это может иметь некоторые проблемы с содержащимися URL-адресами? или & amp;. Или если текст (не код) документа содержит href = "
Еще один вариант, если вы хотите, чтобы ссылки были заменены на jQuery, вы также могли бы сделать следующее:
$(document).find('a').each(function(key, element){
curValue = element.attr('href');
element.attr('href', 'http://www.example.com?loadpage='+curValue);
});
Однако более безопасный способ делает это в php offcourse.