Уроки 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

Що таке вита (кручена) пара та де використовується

Сьогодні, в вік високих технологій, дуже важлива швидка та ефективна передача даних. Завдяки швидкому обміну… Read More

21/01/2021

Брюс Лі

Не важливо, як повільно ти рухаєшся, головне, що ти не зупиняєшся - Брюс Лі   Read More

20/01/2021

Google Search Console – Проблема з LCP та як її вирішити

Нещодавно ми писали про нововведення в інструменті для вебмайстрів Google Search Console – Основних веб-показниках.… Read More

18/01/2021

Як змінити HTML код вбудованих елементів WP oEmbed в WordPress?

Починаючи з WordPress версії 2.9 в двигун була додана підтримка oEmbed – формат простого API,… Read More

16/01/2021

Багатофункціональний пристрій коверлок: ключові особливості

Існує багато різновидів швейного обладнання, які відкривають великі можливості для вдосконалення навичок. Один з найскладніших… Read More

15/01/2021

Як зробити відкладене завантаження для HTML, iframe і вбудованого відео

Ліниве (або відкладене) завантаження (Lazy loading) – це популярний метод асинхронного звернення до адреси ресурсу,… Read More

13/01/2021