تعداد بازدید: 4433

رشته ها در PHP

توابع مربوط به رشته ها در php کاربردهای زیادی دارند از جمله ساخت رشته های رمزنگاری شده و همچنین ساخت خلاصه متن و تبدیل آرایه به رشته و بالعکس و تبدیل رشته (Query String) به تعدادی متغیر کاربرد دارد.

اولین تابع جهت چاپ رشته در خروجی استفاده می شود که می تواند در داخل Single Quotation یا Double Qoatation قرار بگیرد.

  • اگر داخل Single Quotation قرار بگیرد قابلیت چاپ متغیر در داخل آن وجود ندارد و برای چاپ متغیر نیاز است آن ها را از طریق . به هم متصل نماییم که . علامت append یا اتصال است.
  • اگر داخل Double Qoatation قرار بگیرد قابلیت چاپ متغیر در آن وجود دارد.
  • در داخل Double Qoatation اگر Single Qoatation قرار بگیرد تفسیر نمی شود و صرف نمایش کاراکتر Double Qoatation است و همچنین بالعکس.
  • اگر داخل Double Qoatation خواستیم کاراکتر Qoatation را نمایش دهیم باید قبل از آن \ قرار دهیم.
<?php
echo "hello $name";
echo 'hello ' . $name;
echo "ali's car";
echo "My name is \"ali\" ";
echo 'ali\'s car';

نکته : کاراکتر \ در php اگر قبل از کاراکتر های خاصی بیاد معنی خاصی میده :

  • \' : این کاراکتر Single Quotation است
  • \" : این کاراکتر Double Qoatation است.
  • \n : این به معنی new line است.
  • \t : این به معنی tab ( فاصله چند space ) است.

\ کلن بعد از هر علامت کنترلی قرار بگیره اون رو خنثی می کنه  مثلا :

<?php
echo "\$a = $a; \$b = $b; \$c = $c";

توابع عمومی رشته ها در PHP

strlen : این تابع تعداد کاراکتر های یک رشته را بر می گرداند.

strtoupper : تمامی کاراکتر های رشته را به حروف بزرگ انگلیسی تبدیل می کند.

strtolower : تمامی کاراکتر های رشته را با حروف کوچک نمایش می دهد.

نکته : دو تابع و برای پاکسازی رشته از نظر حروف کوچک و بزرگ جهت مقایسه انجام می گیرد. عملیات مقایسه حساس به حروف کوچک و بزرگ است ، فرض کنید کاربر قراره ایمیل خودش رو وارد کنه و شما اون رو با موردی در پایگاه داده مقایسه کنید . کاربر بر حسب عادت غلط کارکتر اول ایمیلش رو با حروف بزرگ وارد کنه قطعا عملیات مقایسه با مشکل مواجه میشه که برای رفع این مورد نیاز هست که رشته رو ابتدا به حروف کوچک تبدیل کنید.

ord : این تابع کاراکتر را می گیرد و کد اسکی (ascii) مربوط به آن را بر می گرداند.

<?php
echo '<br>';
echo ord('a'); //97
echo ord('l'); //108
echo ord('i'); //105
echo ord('ali'); //97

نکته : اگر به این تابع رشته بدید کد اسکی کاراکتر اول رشته رو بر میگردونه. (مثال بالا)

نکته : این تابع معمولا برای رمزنگاری استفاده می شود . جایی که قراره محتوای رشته رو به طرق مختلف از کاربر مخفی کنیم ، یکی از این راه ها استفاده از این تابع است.

chr : این تابع دقیقا برعکس تابع ord کار می کند یعنی کد اسکی می گیرد و کاراکتر متناظر رو بر می گردونه.

نکته : با تسلط بر کد های اسکی و قوانین اون ها و دو تابع بالا می تونید الگوریتم های رمزنگاری خوبی رو ایجاد کنید.

chunk_split : این تابع هر چند کاراکتر در میان رشته یه کارکتر قرار میده.

<?php
 echo chunk_split("code is poem",1,"."); //co#de# i#s #po#em#

نکته : این تابع کاراکتر space رو هم محاسبه می کنه.

nl2br : همون طور که از اسمش پیداست \n یا new line رو به <br> تبدیل می کنه. یعنی اگر کاربر در رشته خودش enter زده باشه که بره به خط بعدی این تابع این کار رو براش انجام میده در غیر این صورت رشته به صورت پشت سر هم میاد.

<?php
$str = "code is poem
 and i love codding every day";
echo $str; // code is poem and i love codding every day
echo nl2br($str);
 /* 
code is poem 
and i love codding every day
 */

نکته : زمانی که دارید خروجی html در متغیر میریزید برای مرتب بودن کدها در زمان نمایش (نمایش در خطوط) در هر خط enter بزنید و در نهایت خروجی رو با تابع nl2br چاپ کنید.

parse_str : این تابع یک رشته Query String رو به تعدادی متغیر تبدیل می کنه (بر اساس جدا کننده & ).

<?php
parse_str("fname= abolfazl&lname=sabagh&job= programmer ");
echo $fname; //abolfazl
echo $lname; //sabagh
echo $job; //programmer

str_pad : این تابع به تعداد خاصی کاراکتر خاص در چپ راست و (یا هردو) یک رشته ورودی قرار می دهد.

<?php  str_pad($string,$length,$pad_string,$pad_type);  ?>

پارامتر های این تابع عبارتست از :

  • string : رشته ورودی
  • length : تعداد کاراکتر برای تکرار
  • pad_string : کاراکتر مورد تظر که باید تکرار بشه.
  • pad_type : نوع چسبوندن pad به رشته که سمت چپ باشه (STR_PAD_LEFT) یا سمت راست (STR_PAD_RIGHT) یا هر دو طرف (STR_PAD_BOTH)
<?php
$str = "GateWayConfig";
echo str_pad($str,5,"*",STR_PAD_BOTH); // *****GateWayConfig*****

نکته : از این تابع برای ساخت رشته ها به صورت زیبا تر هم میشه استفاده کرد. به طور مثال قراره error_log کنید می تونید برخی کلمات رو برای مهم جلوه دادن با این تابع در میان تعدادی کاراکتر * قرار بدید.

str_replace : این تابع یک عبارت خاص در یک رشته رو با یه عبارت دیگه جایگزین می کنه.

<?php  str_replace($find,$replace,$string,$count); ?>

پارامتر های این تابع :

  • find : عبارتی که در رشته موجود است و باید پیدا شود و با پارامتر replace جایگزین گردد.
  • replace : عبارتی که باید با پارامتر find در رشته string جایگزین شود.
  • string : رشته ورودی
  • count : این تابع اولین موردی از find را که پیدا کرد با replace جایگزین می کند. اگر تعداد خاصی از find باید در رشته جایگزین گردد باید عدد این پارامتر را بدهید. (اختیاری)

نکته : اگر در Header یونیکد محتوای شما برابر با UTF8 این تابع برای رشته هایی با یونیکد UTF8 نظیر کاراکتر های زبان پارسی نیز کار می کند.

نکته : این تابع case sensitive هست. در صورت نیاز به غیر فعال کردن این حالت از تابع str_ireplace با همین پارامتر ها استفاده کنید.

str_repeat : یک رشته یا کاراکتر رو به تعداد خاص چاپ می کنه.

<?php
echo str_repeat("*",10); //**********

str_shuffle : کاراکتر های یک رشته رو بهم میریزه .

<?php echo str_shuffle("hello"); ?>

نکته : این تابع در هر بار درخواست به یک حالت خاص بهم میریزه و تکراری این کار رو نمی کنه.

نکته : از این تابع برای تولید رشته های تصادفی استفاده می شه.

strpos : این تابع مکان یک عبارت رو توی یک رشته بر میگردونه و اگر وجود نداشت مقدار FALSE رو برمیگردونه.

<?php  strpos(string,find,start) ?>

پارامتر های این تابع :

  • string : رشته مورد نظر
  • find : عبارت مورد جستجو
  • start : به صورت پیشفرض ابتدای رشته است ولی اگر شما خواستید میتونید مکان خاصی از رشته رو برای شروع جستجو انتخاب کنید.
<?php
echo strpos("php is grat","php"); //0

نکته : از این تابع وجود یک کاراکتر در رشته استفاده میشه . مثلا میخواید بدونید کاربر ایمیل وارد کرده یا نام کاربری ، فقط کافیه که کاراکتر @ رو در رشته ورودی جستجو کنید.

substr : یک رشته میگیره و بر اساس مختصات خاص (شروع و طول برش) یک قسمت خاص از رشته رو بر میگردونه.

<?php substr($string,$start,$length) ?>

پارامتر های این تابع :

  • string : رشته ورودی
  • start : آدرس شروع برش
  • length : طور برش
<?php
echo substr("Hello world",6); //world

نکته : یه سری توابع در رشته ها وجود داره که مربوط میشه به رشته هایی با یونیکد UTF8 که بهتر عمل می کنه برای زبان هایی نظیر فارسی . نحوه عملکردش دقیقا مثل سایر توابع است با این تفاوت که ابتدای نام تابع mb داره . مثال برای تابع substr میشه mb_substr .

printf : چاپ رشته فرمت شده . یعنی می تونه ورودی خاص با خودش داشته باشه به صورت متغیری از جنس های مختلف نظیر رشته ، عدد و …

<?php printf($format,$arg1,$arg2,$arg++)  ?>

پارامتر های تابع :

  • format : رشته ای که فرمت شده یعنی یه سری کاراکتر های خاص درونشه که میتونه نمایانگر یه متغیر خاص باشه.
  • arg : متغیر ها که هر کدوم به ترتیب بر میگرده به محتوای درون رشته فرمت شده.
<?php
$number = 9;
$str = "Beijing";
printf("There are %u million bicycles in %s.",$number,$str);

فرمت های مجاز برای قرار گرفتن در درون رشته به شرح زیر می باشند:

  • %u – Unsigned decimal number (equal to or greather than zero)
  • %f – Floating-point number (local settings aware)
  • %F – Floating-point number (not local settings aware)
  • %s – String

مطالب مشابه

کار با gdLibrary در php

کتابخانه gd برای کار بار تصاویر به صورت پویا در زبان های برنامه نویسی نظیر PHP می باشد که توسط زبان C نوشته شده است....

ساخت REST API با PHP

API (Application Program Interface) یعنی یک واسط برای استفاده از امکانات نرم افزار. واسط های گرافیکی نرم افزار رو هم می...

email handling in php

ارسال و دریافت ایمیل در php

قوانین حکم فرما بر دنیای وب را پروتکل می نامیم. پروتکل http که در سرور ها برای ایجاد پاسخ به درخواست ها در برخی...

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای رشته ها در PHP

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *