Уроки 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'));
?>

 

Замените в последней строке домен на нужный вам.

 

Recent Posts

Чем отличается маршрутизатор от точки доступа и репитера?

Стабильное и быстрое интернет-соединение – важный критерий качества современной жизни. Если вы решили купить бытовую…

2 дня ago

SQL-инъекции: теоретическая часть необходимых знаний

Защита сайта от хакеров, ботов и онлайн-уязвимостей – это многогранная и кропотливая работа. А среди…

4 дня ago

Надоедливая ошибка _load_textdomain_just_in_time в WordPress

Сегодня рассмотрим практический кейс по борьбе с надоедливой ошибкой, с которой часто сталкиваются программисты WordPress…

5 дней ago

Харуки Мураками

Если есть достойная цель, то она упрощает наше существование Харуки Мураками  

6 дней ago

Помощь при выборе и покупке электрогенератора в Украине

В современном мире, где стабильность электроснабжения является ключевым фактором комфорта и бесперебойной работы, наличие надежного…

1 неделя ago

Уоррен Баффетт

Даже если вы очень талантливы и прилагаете большие усилия, для некоторых результатов просто нужно время:…

2 недели ago