تبدیل هشتک و نام کاربری بصورت لینک دار در php با استفاده از Regular Expressions

تبدیل هشتک و نام کاربری بصورت لینک دار در php با استفاده از Regular Expressions

اگر یک برنامه نویس هستید بدون شک اتفاق افتاده است که در سیستم خود نیاز داشته باشید همانند تویتر برای کاربران خود قابلیت ایجاد هشتک و یا ایجاد لینک بصورت @prishroapp را در صفحات وب ایجاد نمایید که کاربر با کلیک بر روی یک نام کاربری یا یک هشتک خاص به صفحه مورد نظر هدایت شود.

اگر یک برنامه نویس هستید بدون شک اتفاق افتاده است که در سیستم خود نیاز داشته باشید همانند تویتر برای کاربران خود قابلیت ایجاد هشتک و یا ایجاد لینک بصورت @prishroapp را در صفحات وب ایجاد نمایید که کاربر با کلیک بر روی یک نام کاربری یا یک هشتک خاص به صفحه مورد نظر هدایت شود.

 

در این مطلب قصد داریم با استفاده از عبارات با قاعده در php, تایعی ایجاد نمایم تا این کار را به راحتی برای ما انجام دهد! پس همراه ما باشید:)

 

Regular Expressions چیست؟

Regular Expressions یا عبارات با قاعده یک ویژگی قدرتمند در اکثر زبان های برنامه نویسی هستند، شما با استفاده از عبارات با قاعده قادر خواهید بود عملیات جستجو و جایگزینی در رشته های متنی را انجام دهید. 

 

در php با استفاده از تابع preg_replace () عملیات جستجو و جایگزینی انجام می شود. این تابع 3 ورودی میگیرد:

1- رشته جستجو

2- مقدار جایگزین 

3- رشته ای که میخواهیم عملیات جستجو در آن انجام شود

 

خوب، ما در این مطلب قصد داریم هشتک ها، برچسب ها و Url یا همان نام کاربری ها را که با @ شروع می شوند را پیدا کرده و سپس بصورت دلخواه آنها را لینک دهی کنیم.

برای اینکار ما تابع میتوانیم به راحتی از تابع زیر استفاده نماییم:

	function tag($txt){
		//Convert urls to <a> links
		$txt = preg_replace("/([\w]+\:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/", "<a target=\"_blank\" href=\"$1\">$1</a>", $txt);
		//Convert hashtags to twitter searches in <a> links
		$txt = preg_replace('/(?:^|\s)#(?<=^|\P{L})(\b\p{L}[\p{L}\d_]+)/u', ' <a href="tag/$1">#$1</a>', $txt);
		//Convert attags to twitter profiles in <a> links
		$txt = preg_replace("/@([A-Za-z0-9\/\.]*)/", "<a href=\"http://www.pishroapp.com/$1\">@$1</a>", $txt);
		echo $txt;
	}

 

حال کافیست تابع بالا را در پروژه های خود قرار دهید و بصورت زیر فراخوانی نمایید:

	$txt = "@pishroapp check out http://www.google.com #pishroapp";
	tag($txt);

 

تابع tag با استفاده از عبارات با قاعده ابتدا متن را جستجو و در صورت لینک آن را در خروجی بصورت قابل کلیک نمایش خواهد داد

در عبارت با قاعده دوم متن از لحاظ وجود هشتک # بررسی و در صورت وجود آن را بصورت یک لینک به صفحه فرضی /tag/mytag ارجاع خواهد داد

و در عبارت با قاعده سوم هم همونطور که متوجه شدید برای شما درصورتی که در ابتدای کلمه @ وجود داشت، آن را بصورت یک لینک نمایش می دهد که می توان لینک پروفایل کاربر در سایت شما باشد.

 

این کد هم برای زبان فارسی و هم زبان انگلیسی مناسب هست

 

شما به راحتی می توانید این عبارات با قاعده را در زبان های دیگر نیز استفاده کنید.

 

امیدوارم این مطلب تونسته باشه برای شما مفید باشه

 

درصورتی که سوالی دارید از بخش نظرات ارسال کنید.


دسته بندی ها:

لاراول

ارسال نظر

برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *

ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *

اگر نظری برای این مطلب ارسال شد از طریق ایمیل مرا اطلاع بده!
لسیت نظرات
هنوز برای این مطلب نظری ارسال نشده است!