Клас php для роботи з текстом
В одній із моїх робіт мені було необхідно отримати код сторінки та вирішити кілька завдань, не поглиблюватимуся, що то була за робота, але зібравши потрібні функції та написавши деякі з них, я з поставленим завданням впорався. Частину з функцій я виніс у клас і зараз вирішив поділитися цими функціями зі своїми читачами.
Завдання, які були вирішені в цьому класі
- Чищення всіх тегів у коді;
- видалення зайвих символів та слів, які не мали великого значення при подальшому аналізі тексту;
- видалення ділянок коду, які не беруть участі в індексації сторінки та не впливають на видачу у пошукових системах;
Клас для чищення html коду та роботи з текстом
class textOperation{ function wp_strip_all_tags($рядок, $remove_breaks = false) { // чистит все теги $string = preg_replace( '@<(сценарій|style)[^>]*?>.*?</\\1>@si', '', $рядок ); $string = strip_tags($рядок); if ( $remove_breaks ) $рядок = preg_replace('/[\рнт ]+/', ' ', $рядок); зворотна обрізка($рядок); } функція cleanTextHtml($text){ $пошук = масив ("'<сценарій[^>]*?>.*?</сценарій>'сі", // Вырезается javascript "'<[\/\!]*?[^<>]*?>'сі", // Вырезаются html-тэги "'([\рп])[\с]+'", // Вырезается пустое пространство "'&(quot|#34);'Я", // Замещаются html-элементы "'&(Підсилювач|#38);'Я", "'&(lt|#60);'Я", "'&(Gt|#62);'Я", "'&(nbsp|#160);'Я", "'&(iexcl|#161);'Я", "'&(цент|#162);'Я", "'&(фунт|#163);'Я", "'&(копіювати|#169);'Я" ); $замінити = масив ("", "", "\\1", "\"", "&", "<", ">", " ", грн.(161), грн.(162), грн.(163), грн.(169) ); $текст = preg_replace($шукати, $Замінити, $text); повернення $text; } функція delsimbpl($text){ $del_symbols = масив(",", ".", ";", ":", "\"", "#", "\$", "%", "^", "!", "@", "`", "~", "*", "-", "=", "+", "\\", "|", "/", ">", "<", "(", ")", "&", "?", "?", "\t", "\r", "\п", "{","}","[","]", "'", "«", "»", "•", " як ", " для ", " що ", " або ", " це ", " этих ", " всех ", " вас ", " они ", " оно ", " еще ", " коли ", " де ", " эта ", " лишь ", " уже ", " вам ", " нет ", " если ", " надо ", " всі ", " так ", " его ", " чем ", " в ", " даже ", " мне ", " есть ", " раз ", " два ", " в ", "не", " 0 ", " 1 ", " 2 ", " 3 ", " 4 ", " 5 ", " 6 ", " 7 ", " 8 ", " 9 " ); $текст = str_replace($del_symbols, ' ', $text); повернення $text; } функція чисельності слів($text){ $текст = $this->clearnBadHtml($text); $текст = $this->cleanTextHtml($text); $текст = $this->Delsimbpl($text); $масив = вибух(' ', $text); луна '<Попередньо>'; print_r($array); луна '</Попередньо>'; кількість повернень($array); $array = $this->RemoveEmpty($array); кількість повернень($array); } function clearnBadHtml($код){ // убрать noindex nofollow <!----> $res = preg_replace("|<noindex>(.*?)</noindex>|si",'',$код); $res = preg_replace("|<style>(.*?)</style>|si",'',$рез); $res = preg_replace("|<сценарій(.*?)>(.*?)</сценарій>|si",'',$рез); $res = preg_replace("|<посилання(.*?) />|si",'',$рез); $res = preg_replace("|\n\n|si",'',$рез); $res = preg_replace("|\r\r|si",'',$рез); //$res = preg_replace("|<a(.*?)rel=(.*?)nofollow(.*?)</a>|si",'',$рез); // не всегда срабатывает $res = preg_replace("|<!--(.*?)-->|si",'',$рез); $res = preg_replace(array("<noindex>","</noindex>"),'',$рез); повернути $рез; } function RemoveEmpty($array) { $Result = array(); foreach ($array as $key => $value) { if ($value != '') $Result[] = $value; } return $Result; } }
Нижче покажу приклад використання класу. Клас використовується для очищення коду та залишає тільки текст.
$obj = новий текстОперація; $текст = ' <клас ul="підменю"> <li id="меню-пункт-2662" клас="меню-пункт меню-елемент-тип-post_type меню-елемент-об'єкт-меню сторінки-елемент-2662"><a href="https://wp-admin.com.ua/uroki-frilansa/oblasti-frilansa/"><проліт>Області фрілансу</проліт></a></li> </вул> </li> <li id="меню-пункт-2671" клас="меню-елемент-елемент-тип-post_type меню-елемент-об'єкт-меню сторінки-елемент-2671"><a href="https://wp-admin.com.ua/uroki-frilansa/frilans-i-fultaym-sushhestvuyut-vmeste/"><проліт>Фріланс та фултайм існують разом</проліт></a></li> <li id="меню-пункт-2669" клас="меню-елемент-елемент-тип-post_type меню-елемент-об'єкт-меню сторінки-елемент-2669"><a href="https://wp-admin.com.ua/uroki-frilansa/test-smogu-li-stat-frilanserom/"><проліт>Тест чи зможу стати фрілансером</проліт></a></li> <li id="меню-пункт-2661" клас="меню-пункт меню-елемент-тип-post_type меню-елемент-об'єкт-меню сторінки-елемент-2661"><a href="https://wp-admin.com.ua/uroki-frilansa/mogu-li-ya-stat-frilanserom/"><проліт>Чи можу я стати фрілансером?</проліт></a></li> </вул>'; відлуння $obj->wp_strip_all_tags($text);
Ось така пам'ятка програмісту вийшла. Думаю багатьом буде корисно для своїх проектів. Успіхів у розробці сайтів.
/*

- Базовий курс з веб-дизайну;
- Верстка сайтів;
- Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
- Розробка сайтів на PHP.




