godofphp
چهارشنبه 19 شهریور 1393, 17:40 عصر
به سفارش یکی از دوستان
هشتگ چیست ؟
بسیاری از شما در جامعه های مجازی همچون توییتر و فیسبوک و گوگل پلاس شاید از هشتگ ها استفاده کرده اید یا حداقل آنها را دیده اید هشتگ یک علامت # میباشد که در ابتدای یک کلمه قرار میگیرد و یک لینک به آن کلمه ایجاد میکند
هشتگی که من اینجا میخواهم با php ایجاد کنم لینکی به درون آدرس فرضی مثل example.com میدهد که بعد از example.com/hashtag قرار میگیرد برای نمونه هنگامی که رشته ای مانند : "من یک برنامه نویس #php هستم " را تایپ کردم به صورت "من یک برنامه نویس #php هستم " نشان داده شود
و هنگامی که روی کلمه php کلیک شود به example.com/php برود .
برای پیاده سازی این تکنولوژی ابتدا رشته ای را در نظر بگیرید مانند :
$string = "i am a #php programmer!"
و ما نیاز به یک متغیر داریم که اطلاعات هشتگ را نگهداری کند و این قسمت میتواند متفاوت باشد در فیسبوک از علامت @ هم برای این کار استفاده میشود ولی این کار برای لینک دادن به یک شخص مکان و ... میباشد که در پایگاه داده از قبل موجود است ما اینجا یک متغیر با نام hashtag در نظر میگیریم
$hashtag="#";
برای تشخیص هشتگ های موجود در رشته باید کلمات رشته را از هم تفکیک کنیم و این کار را با استفاده از تابع explode() به راحتی انجام میدهیم
$my_array=explode(" ",$string);
در این قسمت تابع explode کلمات را بر اساس " " از هم تفکیک میکند
یک متغیر دیگر نیاز داریم که تعداد کلمات را در آن نگهداری کنیم و این کار را با استفاده از تابع count انجام میدهیم
بصورت زیر :
$my_array_count=count($my_array);
حال ما یک آرایه داریم که تمامی کلمات رشته ی مورد نظر ما را در بر دارد و یک متغیر داریم که تعداد آن کلمه ها را نیز در خود نگهداری میکند
باید تمامی کلماتی که در ابتدای آنها علامت هشتگ میباشد را پیدا کنیم و سپس آنها را لینک دار نمائیم این کار را با یک حلفه انجام میدهیم و روی تک تک کلمات هشتگ دار لینک مورد نظر را اعمال میکنیم
$c=0;while( $c < $my_array_count ){ if( substr ( $my_array[$c], 0 , 1 ) === $hashtag ) { $my_array[$c]="<a href='#'>".$my_array[$c]."</a>"; } $c++;}$newstring = implode(" ",$my_array);
داخل حلفه ی بالا هر کلمه تک به تک چک میشود و اگر هشتگ جزو
0 یا 1 باشد آن کلمه لینک دار میشود
در آخر یک واحد به $c که شمارنده حلقه میباشد اضافه میشود و بعد از اتمام حلقه مقادیر آرایه با استفاده از تابع implode بصورت یک رشته در می آید
رشته ی جدید باید چاپ شود تمام !
حال یک مثال کامل که بصورت تابعی با نام makehashtag می باشد قرار میدهم
<?php function makehashtag($string){ $hashtag="#"; $my_array=explode(" ",$string); $my_array_count=count($my_array); $c=0; while($c < $my_array_count) { if(substr($my_array[$c],0,1) === $hashtag) { $my_array[$c]="<a href='site.com/$my_array[$c]'>".$my_array[$c]."</a>"; } $c++; } $newstring = implode(" ",$my_array); return $newstring;}echo makehashtag('an programmer silwec #now');?>
هشتگ چیست ؟
بسیاری از شما در جامعه های مجازی همچون توییتر و فیسبوک و گوگل پلاس شاید از هشتگ ها استفاده کرده اید یا حداقل آنها را دیده اید هشتگ یک علامت # میباشد که در ابتدای یک کلمه قرار میگیرد و یک لینک به آن کلمه ایجاد میکند
هشتگی که من اینجا میخواهم با php ایجاد کنم لینکی به درون آدرس فرضی مثل example.com میدهد که بعد از example.com/hashtag قرار میگیرد برای نمونه هنگامی که رشته ای مانند : "من یک برنامه نویس #php هستم " را تایپ کردم به صورت "من یک برنامه نویس #php هستم " نشان داده شود
و هنگامی که روی کلمه php کلیک شود به example.com/php برود .
برای پیاده سازی این تکنولوژی ابتدا رشته ای را در نظر بگیرید مانند :
$string = "i am a #php programmer!"
و ما نیاز به یک متغیر داریم که اطلاعات هشتگ را نگهداری کند و این قسمت میتواند متفاوت باشد در فیسبوک از علامت @ هم برای این کار استفاده میشود ولی این کار برای لینک دادن به یک شخص مکان و ... میباشد که در پایگاه داده از قبل موجود است ما اینجا یک متغیر با نام hashtag در نظر میگیریم
$hashtag="#";
برای تشخیص هشتگ های موجود در رشته باید کلمات رشته را از هم تفکیک کنیم و این کار را با استفاده از تابع explode() به راحتی انجام میدهیم
$my_array=explode(" ",$string);
در این قسمت تابع explode کلمات را بر اساس " " از هم تفکیک میکند
یک متغیر دیگر نیاز داریم که تعداد کلمات را در آن نگهداری کنیم و این کار را با استفاده از تابع count انجام میدهیم
بصورت زیر :
$my_array_count=count($my_array);
حال ما یک آرایه داریم که تمامی کلمات رشته ی مورد نظر ما را در بر دارد و یک متغیر داریم که تعداد آن کلمه ها را نیز در خود نگهداری میکند
باید تمامی کلماتی که در ابتدای آنها علامت هشتگ میباشد را پیدا کنیم و سپس آنها را لینک دار نمائیم این کار را با یک حلفه انجام میدهیم و روی تک تک کلمات هشتگ دار لینک مورد نظر را اعمال میکنیم
$c=0;while( $c < $my_array_count ){ if( substr ( $my_array[$c], 0 , 1 ) === $hashtag ) { $my_array[$c]="<a href='#'>".$my_array[$c]."</a>"; } $c++;}$newstring = implode(" ",$my_array);
داخل حلفه ی بالا هر کلمه تک به تک چک میشود و اگر هشتگ جزو
0 یا 1 باشد آن کلمه لینک دار میشود
در آخر یک واحد به $c که شمارنده حلقه میباشد اضافه میشود و بعد از اتمام حلقه مقادیر آرایه با استفاده از تابع implode بصورت یک رشته در می آید
رشته ی جدید باید چاپ شود تمام !
حال یک مثال کامل که بصورت تابعی با نام makehashtag می باشد قرار میدهم
<?php function makehashtag($string){ $hashtag="#"; $my_array=explode(" ",$string); $my_array_count=count($my_array); $c=0; while($c < $my_array_count) { if(substr($my_array[$c],0,1) === $hashtag) { $my_array[$c]="<a href='site.com/$my_array[$c]'>".$my_array[$c]."</a>"; } $c++; } $newstring = implode(" ",$my_array); return $newstring;}echo makehashtag('an programmer silwec #now');?>