نوشته شده توسط : طراحی سایت
رفع مشکل لینک ها و آدرس های فارسی در انجمن phpbb
 

رفع مشکل لینک ها و آدرس های فارسی در انجمن phpbb

در صورتی که لینکی که دارای آدرس های فارسی می باشد در phpbb درج نمایید bbcode url کار نمی کند و تبدیل به لینک نمی شود. به عنوان مثال در صورتی که لینک شما چیزی شبیه به آدرس زیر باشد به همان صورت متنی باقی می ماند:

http://sitedesign.joomir.com/مقالات-طراحی-سایت.html

برای رفع این مشکل کافی است فایل موجود در فلدر includes با نام functions.php باز نموده و کد زیر را بیابید:

case 'url':
case 'url_inline':
$inline = ($mode == 'url') ? ')' : '';
$scheme = ($mode == 'url') ? '[a-z\d+\-.]' : '[a-z\d+]'; // avoid automatic parsing of "word" in "last word.http://..."
// generated with regex generation file in the develop folder
return "[a-z]$scheme*:/{2}(?:(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+|[0-9.]+|\[[a-z0-9.]+:[a-z0-9.]+:[a-z0-9.:]+\])(?::\d*)?(?:/(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
break;

case 'www_url':
case 'www_url_inline':
$inline = ($mode == 'www_url') ? ')' : '';
return "www\.(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+(?::\d*)?(?:/(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
break;

case 'relative_url':
case 'relative_url_inline':
$inline = ($mode == 'relative_url') ? ')' : '';
return "(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*(?:/(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
break;

 

و تبدیل به کد زیر نمایید:

// by http://joomir.com ahmad balavipour

case 'url':
case 'url_inline':
$inline = ($mode == 'url') ? ')' : '';
$scheme = ($mode == 'url') ? '[a-z\d+\-.]' : '[a-z\d+]'; // avoid automatic parsing of "word" in "last word.http://..."
// generated with regex generation file in the develop folder
//return "[a-z]$scheme*:/{2}(?:(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+|[0-9.]+|\[[a-z0-9.]+:[a-z0-9.]+:[a-z0-9.:]+\])(?::\d*)?(?:/(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
// by http://joomir.com ahmad balavipour 
return "[a-z][a-z\d+\-.]*:/{2}(?:(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@|]+|%[\dA-F]{2})+|[0-9.]+|\[[a-z0-9.]+:[a-z0-9.]+:[a-z0-9.:]+\])(?::\d*)?(?:/(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@/?|]+|%[\dA-F]{2})*)?";
break;

case 'www_url':
case 'www_url_inline':
$inline = ($mode == 'www_url') ? ')' : '';
//return "www\.(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+(?::\d*)?(?:/(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
return "www\.(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@|]+|%[\dA-F]{2})+(?::\d*)?(?:/(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@/?|]+|%[\dA-F]{2})*)?";
break;

case 'relative_url':
case 'relative_url_inline':
$inline = ($mode == 'relative_url') ? ')' : '';
//return "(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*(?:/(?:[a-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
return "(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@|]+|%[\dA-F]{2})*(?:/(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[\x80-\xFFa-z0-9\-._~!$&'()*+,;=:@/?|]+|%[\dA-F]{2})*)?";
break;

// by http://joomir.com ahmad balavipour
آدرس:


:: برچسب‌ها: phpbb , انجمن ,
:: بازدید از این مطلب : 844
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : دو شنبه 28 مهر 1393 | نظرات ()
نوشته شده توسط : طراحی سایت

برخی موارد در PHP به آن نیاز پید می نمایید که تگ های خاصی از HTML را حذف نمایید که تابعی برای این کار در PHP وجود ندارد. تابع strip_tags نیز به این صورت عمل می نماید که تنها تگ های خاصی را که شما در پارامترهای آن تعریف می نمایید را اجازه نمایش به آن داده می شود. تابع PHP زیرا عکس strip_tags عمل می نماید و تگ هایی که شما مشخص می نمایید را از HTML حذف می نماید.

function strip_defined_tags($str, $tags, $stripContent = false) {
$content = '';
if (!is_array($tags)) {
$tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
if(end($tags) == '') array_pop($tags);
}
foreach($tags as $tag) {
if ($stripContent) {
$content = '(.+|\s[^>]*>)|)';
$str = preg_replace('#|\s[^>]*>)'.$content.'#is', '', $str);
}
return $str;
}
آدرس:


:: برچسب‌ها: strip_tags , strip_tags reverse , php ,
:: بازدید از این مطلب : 616
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : چهار شنبه 23 مهر 1393 | نظرات ()
نوشته شده توسط : طراحی سایت

ابزارهای بسیاری برای کد نویسی PHP وجود دارند که با استفاده از آنها می توانید راحت تر برنامه نویسی نمایید. در زیر چند مورد را که مورد استفاده دارکوب نیز می باشد به شما نمایش داده ام.

Aptana PHP

Aptana PHP ویرایشگر متن باز PHP می باشد که در کنار Aptana Studio مورد استفاده قرار می گیرد. برای اطلاعات بیشتر به online documentation about Aptana PHP مراجعه نمایید.

PHPUnit


PHPUnit ابزار کامل JUnit جهت تست و بررسی PHP 5 می باشد. ابزاری جهت تست برنامه های نوشته شده توسط PHP شما می باشد. تست کردن برنامه توسط فریم ورک PHPUnit بسیار ساده می باشد; برای نحوه استفاده به نحوه استفاده مراجعه نمایید.

Securimage


Securimage ابزاری رایگان, جهت ساخت تصاویر با کدهای رندم CAPTCHA جهت امن سازی فرم های وب سایت می باشد.

 

SublimeText

http://www.sublimetext.com/

 

ابزاری برای ویرایش کدهای PHP که توسط برنامه نویسان مورد استفاده قرار می گیرد، Sublime Text دارای امکانات جانبی بسیاری در باکس کناری آن می باشد. می توانید چندین ستون/ ردیف/ پنجره در هر پروژه باز نمایید ، موس را در چندین جای مختلف قرار دهید، کلیدهای میانبر برای آیتم های مختلف تعریف نمایید و سایر موارد. ویژگی مورد علاقه من مدیریت بسته ها می باشد ، که با برنامه نویس امکان نصب پلاگین های مختلف را می دهد تا از تابع های مختلفی استفاده نماید.

بسته های مختلف از بابت معرفی (سایر موارد را می توانید در این آدرس بیابید https://sublime.wbond.net/):

  • phpDocumenter (ایجاد تالیفات حرفه ای)
  • Alignment (مرتب سازی کدها)
  • PHP Completions Kit (تکمیل کننده پارامترها؟)
  • Automatic Backups (نگه داشتن فایل بک آپ همه چیز)
  • Retro Computer Themes (قالب نماشی مترو)
  • Bracket Highlighter (های لایت کردن براکت ها)
  • LastModifiedIndicator (نمایکشگر تغییرات فایل)

Composer

https://getcomposer.org/

در صورتی که قصد استفاده از کتابخانه های محبوب PHP را دارید می توانید از این ابزار استفاده نمایید.  به راحتی می توانید فایلcomposer.json در ریشه اصلی پروژه خود ایجاد نموده, و یک دستور را اجرا نمایید, و کلیه ارتباط ها بارگذاری می گردند و آماده استفاده می باشند.  کتابخانه های بسیار در https://packagist.org

Git/SVN/Version Control

http://git-scm.com/

ابزاری جهت استفاده در پروژه های تیمی.  در صورتی که چندین نفر بر روی یک فایل کار می نمایند و نیاز به بازگردانی به نسخه های قبلی باشد استفاده از این ابزار بسیار مناسب خواهد بود. به شما پیشنهاد می نمایم در مورد نحوه استفاده و امکانات به Git مراجعه نمایید.

PHP Debugbar

https://github.com/maximebf/php-debugbar

ارسال اطلاعات رفع عیب و صفحه کنسول مرورگر.  خروجی var_dump()ing برای شما ارسال خواهد شد, Jpop.  این ابزار شبیه به FirePHP می باشد اما استفاده از آن بسیار ساده تر می باشد.  این ابزار شبیه به Monolog می باشد, که اطلاعات رفع عیب PHP را به صورت پیچیده تر به خروجی ارسال می نماید.

Faker

https://github.com/fzaninotto/Faker

کتابخانه بسیار جالبی از اطلاعات پیش فرض که می توانید از آن استفاده نمایید — نام, آدرس و سایر موارد.

Geocoder

https://github.com/geocoder-php/Geocoder

ابزاری بسیار مناسب برای به کار گیری توابع مربوط به مکان که به مانند Google, Bing و MapQuest کار می نماید.

Directus

http://getdirectus.com

Directus فریم ورک مدیریت محتوا نوشته شده بر پایه PHP می باشد که به شما امکان تغییر نحوه دریافت، پردازش و نمایش محتوا را می دهد. ;کافی است دستورهای SQL خود را بنویسید تا Directus سایر کارها را برای شما انجام دهد. در حقیقت می توانید از آن به عنوان یک سیستم مدیریت محتوا استفاده نمایید.

آدرس:

ابزارهای PHP برای توسعه وب سایت



:: برچسب‌ها: php , برنامه نویسی php , برنامه نویسی ,
:: بازدید از این مطلب : 555
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : چهار شنبه 16 مهر 1393 | نظرات ()
نوشته شده توسط : طراحی سایت

در برنامه نویسی PHP مواقعی پیش می آید که نیاز دارید دو تاریخ را به یکدیگر مقایسه نمایید و فاصله زمانی بین دو تاریخ را پیدا کنید که در بخش زیر نحوه بدست آوردن آن را به صورت کامل برای شما شرح خواهم داد. تاریخ ها را نمی توانید به صورت عادی از هم منها نمایید و می بایست آنها را به مقدار عددی تبدیل نمایید. برای انجام این کار می توانید از تابع strtotime استفاده نمایید. این تابع تاریخ شما به صورت تاریخ UNIX تبدیل می نماید که این تاریخ فاصله زمان تاریخ شما به ثانیه از زمان یکم 1970 می باشد. در زیر نحوه انجام این کار را به شما نمایش می دهم:

$date1 = "2007-03-24 00:00:00";
$date2 = "2009-06-26 00:00:00";

$diff = abs(strtotime($date2) - strtotime($date1));

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

printf("%d years, %d months, %d days\n", $years, $months, $days);

در کد بالا تاریخ می توانید به صورت تاریخ و زمان نیز باشد. متغییر $diff دو تاریخ را به صورت عددی از یکدیگر منها می نماید و بنابراین $date2 می بایست زمان جدیدتر باشد. برای بدست آوردن تفاوت سالیانه دو تاریخ می بایست فاصله زمانی بدست آماده را به سال تبدیل نمایید و از تابع floor برای روند کردن آن استفاده نمایید. برای بدست آوردن تعداد ماه ابتدا می بایست تعداد سال ها به ثانیه را از تفاوت دو تاریخ به ثانیه کسر نموده و سپس آن را به ماه تبدیل نمایید و برای سایر واحدهای تاریخ نیز به همین ترتیب عمل نمایید. در صورتی که قصد دارید فاصله بین دو تاریخ را به ساعت و دقیقه و همچنین ثانیه بیان نمایید می توانید کدهای زیر را به کد اصلی خود اضافه نمایید.

$hour = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24)/ (60*24));

$min = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hour*60*60)/ (60));

البته می توانید فاصله زمانی بین دو تاریخ را فقط توسط المان های دیگر نظیر ساعت و دقیقه بیان نمایید که در زیر مثال آن را برای شما آورده ام:

$hour = floor($diff / (60*24));
$min = floor(($diff - $hour * 60*24) / (24));

آدرس:

مقایسه تفاوت بین دو تاریخ توسط PHP



:: برچسب‌ها: strtotime , php ,
:: بازدید از این مطلب : 2087
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : چهار شنبه 9 مهر 1393 | نظرات ()
نوشته شده توسط : طراحی سایت

ابزارهای بسیاری برای کد نویسی PHP وجود دارند که با استفاده از آنها می توانید راحت تر برنامه نویسی نمایید. در زیر چند مورد را که مورد استفاده دارکوب نیز می باشد به شما نمایش داده ام.

Aptana PHP

Aptana PHP ویرایشگر متن باز PHP می باشد که در کنار Aptana Studio مورد استفاده قرار می گیرد. برای اطلاعات بیشتر به online documentation about Aptana PHP مراجعه نمایید.

PHPUnit


PHPUnit ابزار کامل JUnit جهت تست و بررسی PHP 5 می باشد. ابزاری جهت تست برنامه های نوشته شده توسط PHP شما می باشد. تست کردن برنامه توسط فریم ورک PHPUnit بسیار ساده می باشد; برای نحوه استفاده به نحوه استفاده مراجعه نمایید.

Securimage


Securimage ابزاری رایگان, جهت ساخت تصاویر با کدهای رندم CAPTCHA جهت امن سازی فرم های وب سایت می باشد.

 

SublimeText

http://www.sublimetext.com/

 

ابزاری برای ویرایش کدهای PHP که توسط برنامه نویسان مورد استفاده قرار می گیرد، Sublime Text دارای امکانات جانبی بسیاری در باکس کناری آن می باشد. می توانید چندین ستون/ ردیف/ پنجره در هر پروژه باز نمایید ، موس را در چندین جای مختلف قرار دهید، کلیدهای میانبر برای آیتم های مختلف تعریف نمایید و سایر موارد. ویژگی مورد علاقه من مدیریت بسته ها می باشد ، که با برنامه نویس امکان نصب پلاگین های مختلف را می دهد تا از تابع های مختلفی استفاده نماید.

بسته های مختلف از بابت معرفی (سایر موارد را می توانید در این آدرس بیابید https://sublime.wbond.net/):

  • phpDocumenter (ایجاد تالیفات حرفه ای)
  • Alignment (مرتب سازی کدها)
  • PHP Completions Kit (تکمیل کننده پارامترها؟)
  • Automatic Backups (نگه داشتن فایل بک آپ همه چیز)
  • Retro Computer Themes (قالب نماشی مترو)
  • Bracket Highlighter (های لایت کردن براکت ها)
  • LastModifiedIndicator (نمایکشگر تغییرات فایل)

Composer

https://getcomposer.org/

در صورتی که قصد استفاده از کتابخانه های محبوب PHP را دارید می توانید از این ابزار استفاده نمایید.  به راحتی می توانید فایلcomposer.json در ریشه اصلی پروژه خود ایجاد نموده, و یک دستور را اجرا نمایید, و کلیه ارتباط ها بارگذاری می گردند و آماده استفاده می باشند.  کتابخانه های بسیار در https://packagist.org

Git/SVN/Version Control

http://git-scm.com/

ابزاری جهت استفاده در پروژه های تیمی.  در صورتی که چندین نفر بر روی یک فایل کار می نمایند و نیاز به بازگردانی به نسخه های قبلی باشد استفاده از این ابزار بسیار مناسب خواهد بود. به شما پیشنهاد می نمایم در مورد نحوه استفاده و امکانات به Git مراجعه نمایید.

PHP Debugbar

https://github.com/maximebf/php-debugbar

ارسال اطلاعات رفع عیب و صفحه کنسول مرورگر.  خروجی var_dump()ing برای شما ارسال خواهد شد, Jpop.  این ابزار شبیه به FirePHP می باشد اما استفاده از آن بسیار ساده تر می باشد.  این ابزار شبیه به Monolog می باشد, که اطلاعات رفع عیب PHP را به صورت پیچیده تر به خروجی ارسال می نماید.

Faker

https://github.com/fzaninotto/Faker

کتابخانه بسیار جالبی از اطلاعات پیش فرض که می توانید از آن استفاده نمایید — نام, آدرس و سایر موارد.

Geocoder

https://github.com/geocoder-php/Geocoder

ابزاری بسیار مناسب برای به کار گیری توابع مربوط به مکان که به مانند Google, Bing و MapQuest کار می نماید.

Directus

http://getdirectus.com

Directus فریم ورک مدیریت محتوا نوشته شده بر پایه PHP می باشد که به شما امکان تغییر نحوه دریافت، پردازش و نمایش محتوا را می دهد. ;کافی است دستورهای SQL خود را بنویسید تا Directus سایر کارها را برای شما انجام دهد. در حقیقت می توانید از آن به عنوان یک سیستم مدیریت محتوا استفاده نمایید.

آدرس:

ابزارهای PHP برای برنامه نویسی



:: برچسب‌ها: php , برنامه نویسی php , برنامه نویسی ,
:: بازدید از این مطلب : 552
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : شنبه 5 مهر 1393 | نظرات ()