Jump to content

[Хак]Хэш Теги


Recommended Posts

Дорогие пользователи портала cms tools.ru

Нашел недавно код Хэш тегов на одном из форумов посвященным vii engine.

Но только предупреждаю, что он работает только с версией php выше чем 5.5 (кажись так)

 

Автор кода: Andrey или же Andrey Ajax

 

Он взял старый код:

$msg = stripslashes($row_wall['text']);  // Удаляем экранированые символы и задаем переменную
$pat = array('/#(\w+)/', '/@(\w+)/'); // Оттискиваем всё что после # и @
$rep = array('[url="http://example.com/tag/$1"]#$1[/URL]','[url="http://example.com/user/$1"]@$1[/URL]'); // Добавляем то что нашли после @ и # в нужные нам места
$new_msg = preg_replace($pat, $rep, $msg); // Производим замену
$tpl->set('{text}', $new_msg); // Выводим в шаблон допустим если в шаблоне было @andrey то этот код в шаблон выведет [url="http://example.com/user/andrey"]andrey[/URL] так же и с решеткой

И сделал оптимизированый Вариант:

$msg = stripslashes($row_wall['text']);  // Удаляем экранированые символы и задаем переменную
$array = array( '/#(\w+)/' => '[url="http://example.com/tag/$1"]#$1[/URL]', '/@(\w+)/' => '[url="http://example.com/user/$1"]@$1[/URL]'); // Оттискиваем всё что после # и @
$new_msg = str_replace(array_keys($array), array_values($array), $msg); // Производим замену
$tpl->set('{text}', $new_msg); // Выводим в шаблон допустим если в шаблоне было @andrey то этот код в шаблон выведет [url="http://example.com/user/andrey"]andrey[/URL] так же и с решеткой

Так же, цитирую автора:

 


 

 

Всегда старайтесь оптимизировать свой код что бы он был стабильный и быстрый, вот Вам простой пример функций поиска и замены тест на 1000 строк, Результат:

  •  
  • strtr — 0.45s*
  •  
  • preg_replace- 0.28s*
  •  
  • str_replace — 0.14s*
  •  

к тому же preg_replace в php выше 5.5 уже не поддерживается
Edited by Jion
P.S. Забыл добавить, что код нужно вставлять в wall.php ( /system/classes/ ). Найти этот код: $tpl->set('{text}', stripslashes($row_wall['text'])); и заменить его тем, что выше!
Link to comment
Share on other sites

  • 3 weeks later...
  • 11 months later...
  • 3 weeks later...
  • 2 weeks later...
  • 2 years later...

Здравствуйте, не подскажите в чем может быть проблема? Не создаются ссылки

 


			$msg = stripslashes($row_wall['text']);
			$array = array( '/#(\w+)/' => '<a href="/?go=search&query=$1&type=7">#$1</a>', '/@(\w+)/' => '<a href="/u$1">@$1</a>');
			$new_msg = str_replace(array_keys($array), array_values($array), $msg);
			$tpl->set('{text}', $new_msg);

 

Снимок.PNG

222.PNG

Link to comment
Share on other sites

В 17.09.2018 в 14:41, SLAVIk37 сказал:

Здравствуйте, не подскажите в чем может быть проблема? Не создаются ссылки

 


			$msg = stripslashes($row_wall['text']);
			$array = array( '/#(\w+)/' => '<a href="/?go=search&query=$1&type=7">#$1</a>', '/@(\w+)/' => '<a href="/u$1">@$1</a>');
			$new_msg = str_replace(array_keys($array), array_values($array), $msg);
			$tpl->set('{text}', $new_msg);

 

Снимок.PNG

222.PNG

Дай ссылку

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...