Уроки PHP – полезные сниппеты
При работе с PHP очень полезно иметь определенный набор готовых функций и фрагментов кода (сниппетов), которые могут сэкономить много времени. Сегодня мы рассмотрим интересные фрагменты кода, которые, вероятно, вам пригодятся.
1) Найти все ссылки на странице
Используя DOM, вы можете легко получить все ссылки с любой веб-страницы. Вот рабочий практический пример:
<?php $html = file_get_contents('https://sebweo.com'); $dom = new DOMDocument(); @$dom->loadHTML($html); $xpath = new DOMXPath($dom); // получение всех узлов DOM страницы $hrefs = $xpath->evaluate("/html/body//a"); for ($i = 0; $i < $hrefs->length; $i++) { $href = $hrefs->item($i); $url = $href->getAttribute('href'); echo $url.'<br>'; } ?>
Замените в первой строке домен на нужный вам.
2) Извлечь все ключевые слова с веб-страницы
С помощью этого PHP сниппета вы можете легко извлечь все ключевые слова (<meta name="keywords"/>
) с любой веб-страницы.
<?php $meta = get_meta_tags('https://sebweo.com'); $keywords = $meta['keywords']; $keywords = explode(',', $keywords ); // разделение ключевых слов $keywords = array_map( 'trim', $keywords ); // их обрезка $keywords = array_filter( $keywords ); // удаление пустых значений print_r( $keywords ); ?>
Замените в первой строке домен на нужный вам.
3) Whois-запрос с использованием PHP
Если вам нужно получить информацию whois для определенного домена, вы можете использовать PHP для этого. Следующая функция принимает имя домена в качестве параметра, а затем отображает информацию whois, которая связана с этим доменом.
<?php function domainWhoisInfo($domain) { // получение правильной записи доменного имени: $domain = strtolower(trim($domain)); $domain = preg_replace('/^https?:\/\//i', '', $domain); $domain = preg_replace('/^www\./i', '', $domain); $domain = explode('/', $domain); $domain = trim($domain[0]); // разделение доменной зоны от доменного имени $_domain = explode('.', $domain); $lst = count($_domain)-1; $ext = $_domain[$lst]; // серверы с информацией whois для некоторых доменных зон $servers = array( "biz" => "whois.neulevel.biz", "com" => "whois.internic.net", "edu" => "whois.internic.net", "gov" => "whois.nic.gov", "info" => "whois.nic.info", "name" => "whois.nic.name", "net" => "whois.internic.net", "org" => "whois.pir.org", "ru" => "whois.ripn.net", "tv" => "whois.tv", "ua" => "whois.ua" "us" => "whois.nic.us", ); if (!isset($servers[$ext])){ die('Ошибка: не найдено ни одного подходящего сервера!'); } $nic_server = $servers[$ext]; $output = ''; // подключение к whois серверу: if ($conn = fsockopen ($nic_server, 43)) { fputs($conn, $domain."\r\n"); while(!feof($conn)) { $output .= fgets($conn,128); } fclose($conn); } else { die('Ошибка: не удалось подключиться к ' . $nic_server . '!'); } return $output; } // вызов функции определения whois print_r(domainWhoisInfo('sebweo.com')); ?>
Замените в последней строке домен на нужный вам.