Задавайте питання щодо курсів WordPress

Клас php для роботи з текстом

В одній із моїх робіт мені було необхідно отримати код сторінки та вирішити кілька завдань, не поглиблюватимуся, що то була за робота, але зібравши потрібні функції та написавши деякі з них, я з поставленим завданням впорався. Частину з функцій я виніс у клас і зараз вирішив поділитися цими функціями зі своїми читачами.

Завдання, які були вирішені в цьому класі

  1. Чищення всіх тегів у коді;
  2. видалення зайвих символів та слів, які не мали великого значення при подальшому аналізі тексту;
  3. видалення ділянок коду, які не беруть участі в індексації сторінки та не впливають на видачу у пошукових системах;

Клас для чищення 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);

Ось така пам'ятка програмісту вийшла. Думаю багатьом буде корисно для своїх проектів. Успіхів у розробці сайтів.


Купить хостинг WordPress
/* Репетитор по wordpress
Послуги репетитора онлайн. Список курсів, які я веду
  • Базовий курс з веб-дизайну;
  • Верстка сайтів;
  • Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
  • Розробка сайтів на PHP.
Докладніше читайте на сторінці репетитор по WordPress
*/

Ніколаєнко Максим

Директор веб-студии ProGrafika. Займаюсь розробкою, дизайном та просуванням веб-сайтів. Завжди радий новим читачам блогу та добрим клієнтам.


Вам також може сподобатися...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються дані ваших коментарів.

Шаблони для WordPress
Найкращий хостинг в Україні
Стабільний хостинг для Drupal