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

 

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

 

This post was last modified on 27/05/2019 17:07

Последние посты

Генри Форд

Человек имеет два мотива поведения — один настоящий и второй, который красиво звучит Генри Форд…

16/07/2024

Фридрих Ницше

Не нужно додумывать слишком много. Так вы создаете проблемы, которых изначально не было Фридрих Ницше…

11/07/2024

Такой разный инвертор! Выбираем между кондиционерами Inverter, Inverter DC и Full DC

Лето в разгаре, а значит самое время задуматься о покупке кондиционера. Но как не потеряться…

06/07/2024

Омар Хайям

Настоящий друг — это человек, который в глаза тебе выскажет все, что о тебе думает,…

30/06/2024

Полезные советы по выбору раздвижной двери

Следует знать, что функциональность и дизайн работают рука об руку, когда вы используете раздвижную дверь.…

29/06/2024

Гераклит

Единственное, что есть в нашей жизни постоянного, — это перемены. Нет ничего более постоянного, чем…

23/06/2024