Перейти к публикации

линки автоматически как с [url]


Рекомендованные сообщения

можно зделать так как у форумов, чтоб если линк под

то на них можно кликать и не надо каждый линк по одельности в вносить?

надеюсь понятно

Ссылка на сообщение
Поделиться на других сайтах

Как это сделано в IPB

Функция

	function regex_build_url($url=array())

	{

		$skip_it = 0;


		//-----------------------------------------

		// Make sure the last character isn't punctuation..

		// if it is, remove it and add it to the

		// end array

		//-----------------------------------------


		if ( preg_match( "/([\.,\?]|!)$/", $url['html'], $match) )

		{

			$url['end'] .= $match[1];

			$url['html'] = preg_replace( "/([\.,\?]|!)$/", "", $url['html'] );

			$url['show'] = preg_replace( "/([\.,\?]|!)$/", "", $url['show'] );

		}


		//-----------------------------------------

		// Make sure it's not being used in a

		// closing code/quote/html or sql block

		//-----------------------------------------


		if (preg_match( "/\[\/(html|quote|code|sql)/i", $url['html']) )

		{

			return $url['html'];

		}


		//-----------------------------------------

		// clean up the ampersands / brackets

		//-----------------------------------------


		$url['html'] = str_replace( "&" , "&"   , $url['html'] );

		$url['html'] = str_replace( "["	 , "%5b" , $url['html'] );

		$url['html'] = str_replace( "]"	 , "%5d" , $url['html'] );


		//-----------------------------------------

		// Make sure we don't have a JS link

		//-----------------------------------------


		$url['html'] = preg_replace( "/java script:/i", "java script: ", $url['html'] );


		//-----------------------------------------

		// Do we have http:// at the front?

		//-----------------------------------------


		if ( ! preg_match("#^(http|news|https|ftp|aim)://#", $url['html'] ) )

		{

			$url['html'] = 'http://'.$url['html'];

		}


		//-----------------------------------------

		// Tidy up the viewable URL

		//-----------------------------------------


		if (preg_match( "/^<img src/i", $url['show'] )) $skip_it = 1;


		$url['show'] = preg_replace( "/&amp;/" , "&" , $url['show'] );

		$url['show'] = preg_replace( "/java script:/i", "javascript: ", $url['show'] );


		if ( (strlen($url['show']) -58 ) < 3 )  $skip_it = 1;


		//-----------------------------------------

		// Make sure it's a "proper" url

		//-----------------------------------------


		if (!preg_match( "/^(http|ftp|https|news):\/\//i", $url['show'] )) $skip_it = 1;


		$show	 = $url['show'];


		if ($skip_it != 1)

		{

			$stripped = preg_replace( "#^(http|ftp|https|news)://(\S+)$#i", "\\2", $url['show'] );

			$uri_type = preg_replace( "#^(http|ftp|https|news)://(\S+)$#i", "\\1", $url['show'] );


			$show = $uri_type.'://'.substr( $stripped , 0, 35 ).'...'.substr( $stripped , -15   );

		}


		return $url['st'] . "<a href='".$url['html']."' target='_blank'>".$show."</a>" . $url['end'];


	}
из которой смело можно выкинуть кусок
		//-----------------------------------------

		// Make sure it's not being used in a

		// closing code/quote/html or sql block

		//-----------------------------------------


		if (preg_match( "/\[\/(html|quote|code|sql)/i", $url['html']) )

		{

			return $url['html'];

		}
Вызов функции:
$txt = preg_replace( "#(^|\s)((http|https|news|ftp)://\w+[^\s\[\]]+)#ie"  , "\$this->regex_build_url(array('html' => '\\2', 'show' => '\\2', 'st' => '\\1'))", $txt );

$this-> выкидываем и получаем готовый хак/мод (называйте как хотите)

Ссылка на сообщение
Поделиться на других сайтах

я хочу чтобы если линк(и) под [quota] или

[/b], то они были активными(можно кликать).

а не как сейчас, где надо каждый линк под [b]My Webpage[/b] носить и название писать чтобы он "работал"

Ссылка на сообщение
Поделиться на других сайтах

эм. наверно чтобы под всем было? или нереально или опасно?

просто если у тебя несколько линков то обычно их пехаеш под квоту или код.

а вообще было бы классно если нецэго не надо добовлять просто внёс линк а он уже в парсинге

Ссылка на сообщение
Поделиться на других сайтах

evrei, посты мне абсолютно ничего не приносят. Я здесь для того, чтобы помогать и направлять ход мыслей в нужное русло и очень редко выкладываю готовый код. Если вам моя информация не помогла, что же тогда либо вам нужно покупать решение у программистов, либо разбираться самому или попросту отказаться от задумки. Других вариантов просто нет.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...