اسفند ۲, ۱۳۹۷ Mostafa بدون دیدگاه

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

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

دستکاری رشته ها

معمولا در انجام مقایسه ها و جستجو از فضاهای خالی رشته ها صرف نظر می شود. برای این کار توابع زیر مورد استفاده قرار می گیرد :
تابع ltrim() : این تابع فضای خالی سمت چپ رشته را حذف می نماید و به صورت زیر به کار می رود :

 

ltrim($str);

تابع chop : این تابع فضای خالی سمت راست رشته را حذف می نماید و به صورت زیر به کار می رود :

chop($str);

تابع trim() : این تابع فضای خالی سمت راست و چپ رشته را حذف می نماید و به صورت زیر به کار می رود :

trim($str);

 فرمت بندی رشته ها برای نمایش
توابع متعددی در php وجود دارند که برای فرمت بندی مجدد رشته ها به کار می آیند . این توابع را در مورد بررسی قرار میدیم
تابع nl2br() : در این تابع ، رشته ای را به عنوان پارامتر دریافت می کند و تمام کاراکترهای سطر جدید (newline charachters) را برداشته به جای آن دستور
را قرار میدهد که از دستورات html است.این تابع برای نمایش رشته های طولانی در مرورگر به کار میرود:

nl2br($str);

فرمت بندی رشته ها برای چاپ
تاکنون برای چاپ رشته ها در مرورگر از دستور echo و تابع print استفاده کردیم.هر یک از این دو رشته را به صورتی که هست چاپ میکنند.اما با استفاده از دو تابعت printf() و sprintf() می توان خروجی بهتیر را تولید کرد. تفاوت این دو تابع این است که تابع fprintf رشته را در مرورگر ، و تابع sprintf() رشته را در یک رشته دیگر می نویسد.هر یک از این دو تابع به صورت زیر به کار می روند:

printf(string format [, mixed args ... ] );
sprintf(string format [, mixed args ... ] );

 

پارامتر اول ، فرمتی است که شکل خروجی را مشخص می کند . پارامتر دوم متغیرهای رشته ای هستند که باید به خروجی بروند.فرمت خروجی ها با کاراکترهای خاصی مشخص می شوند که در ادامه به آن ها اشاره میکنم.به عنوان مثال ، کاراکتر فرمت %s برای چاپ رشته ها و کاراکتر فرمت %d برای چاپ مقادیر صحیح به کار می رود.
کاراکترهای فرمت
b => به صورت یک مقدار صحیح تفسیر شده به شکل یک عدد دودویی چاپ می شود.
c => به صورت یک مقدار صحیح تفسیر شده به شکل کاراکتر چاپ می شود.
d => به صورت یک مقدار صحیح تفسیر شده به شکل دهدهی چاپ می شود.
f => به صورت یک مقدار double تفسیر شده به شکل ممیز شناور چاپ می شود.
o => به صورت یک مقدار صحیح تفسیر شده در مبنای ۸ نوشته می شود.
s => به صورت رشته تفسیر و چاپ می شود.
x => به صورت یک مقدار صحیح تفسیر شده با حروف کوچک a-f در مبنای ۱۶ چاپ می شود.
X => به صورت یک مقدار صحیح تفسیر شده با حروف بزرگ A_F در مبنای ۱۶ چاپ می شود.
به مثال زیر دقت کنید :

$name = "Mostafa";
printf("My Name Is %s",$name);

خرجی تین دستور این عبارت است :

My Name Is Mostafa

 

حال این دستورات را ببینید :

$num = 156;
printf("Output: %x",$num);
printf("Output: %b",$num);
printf("Output: %o",$num);
printf("Output: %f",$num);
printf("Output: %d",$num);

خروجی این دستور به این صورت است :

 

Output: 9c
Output: 10011100
Output: 234
Output: 156000000
Output: 156

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

تابع strtoupper() : این تابع رشته ای را به حروف بزرگ تبدیل می کند :

 

strtoupper($str);

 

تابع strtolower() : این تابع رشته ای را به حروف کوچک تبدیل می کند :

strtolower($str);

تابع ucfirst() : این تابع اولین حرف رشته را به حرف بزرگ تبدیل می کند:

ucfirst($str);

تابع ucwords() : این تابع اولین حرف تمام کلمات رشته ای را به حرف بزرگ تبدیل می کند:

ucwords($str);

الحاق و تجزیه رشته ها

توابعی در php وجود دارند که برای الحاق یا تجزیه رشته ها به چند زیر رشته به کار می روند
برخی از این توابع به شرح زیر هستند:
تابع explode() : این تابع رشته ای را دریافت کرده ، آن را بر اساس جداکننده ای که به عنوان پارامتر مشخص می شود،تجزیه می کند و در آرایه ای قرار می دهد . کاربرد آن به صورت زیر است :

explode(seprator,$str[,int limit]);

seprator کاراکتر جدا کننده است.$str رشته ای است که باید تجزیه شود.limit مشخص می کند چند تکه از رشته جدا شود.به عنوان مثال دستورات زیر را ببینید :

$mail = "Mostafa@pctricks.ir";
$ar = explode('@',$mail);

دستور اول رشته ای را تعریف می کند.دستور دوم این رشته را به ۲ بخش تقسیم میکند و در آرایه  $ar  قرار می دهد.به طوری که $ar[0] برابر Mostafa و $ar[1] برابر با pctricks.ir می شود.

تابع implode() : این تابع بر عکس تابع explode() عمل می کند و به صورت زیر به کار می رود :

 

implode (seprator,array);

 

به طور مثال برلی الحاق دو رشته موجود در $ar[0] و $ar[1] به صورت زیر عمل می شود:

$email = implode('@',$ar)

یادآوری می شود که تابع join() نیز دقیقا مثل تابع implode() به کار می رود

تابع strtok() : این تابع هر بار روی رشته ای اجرا می شود، یک نشانه (token) را جدا می کند :

strtok(str, seprator);

str رشته ای است که نشانه ای از آن که با seprator تفکیک شده است ، جدا می شود.دستورات زیر را ببینید :

$str = 'Mostafa Shiraali';
$t = strtok($str,' ');

با این دستور واژه ‘Mostafa’ در $t قرار میگیرد .
تابع substr() : این تابع می تواند زیر رشته ای را از یک رشته جدا کند:

substr(str,start[,lenght]);

این تابع زیر رشته ای به طول length را با شروع از موقعیت start در رشته str بر میگرداند.اگر length مشخص نشود ، از start تا انتهای رشته برگردانده می شود.به عنوان مثال دستور زیر را ببینید :

$str = "You Are Learning PHP";
$sub = substr($str, 18, 3);

این دستور رشته ‘PHP’ را جدا کرده در $sub قرار می دهد. توجه کنید که موقعیت اولین کاراکتر رشته برابر با صفر است.

مقایسه رشته ها
همان طور که میدونید از عملگر == میشه برای مقایسه رشته ها استفاده کرد . ولی تابعی تو php هستش که کارای پیچیده تری مورد استفاده قرار میگیره :‌
تابع strcmp() : این تابع برای مقایسه دو رشته به کار میره :‌

 

strcmp($str1, $str2);

اینجا اگه $str1 و $str2 برابر باشند مقدار ۰ ، اگه $str1 از $str2 بزرگتر باشه مقدار بزرگتر از ۰ و اگه $str1 از $str2 کوچکتر باشه مقدار کوچکتر از ۰ برگشت داده میشه .

تابع strcasecmp() : این تابع مثل strcmp عمل میکنه با این تفاوت که بین حروف بزرگ و کوچک فرقی قائل نیست .

جستجو در رشته ها

تو php توابع متعددی برای جستجو رشته ای تو رشته ی دیگه وجود داره که در زیر به بعضی از آنها اشاره میشه :‌

تابع strstr() : این تابع ،‌ رشته ای را در یک رشته بزرگ جستجو می کند و به صورت زیر به کار میرود :‌

 

strstr($str1, $str2);

این تابع $str2 رو توی $str1 جستجو میکنه . اگه $str2 تو $str1 وجود داشته باشه از اون محل تا انتهای رشته را بر میگرداند و گرنه مقدار false برمیگرداند . مثال زیر رو ببینید :‌

$str1 = 'Mostafa Shiraali @ Pctricks';
$s = strstr($str1, '@');

که در اینجا مقدار :‌

    @ Pctricks

 

در متغیر $s ریخته میشود. توجه کنید که تابع strchr() دقیقا مانند تابع strstr() عمل میکند

تابع stristr()‌ :‌ این تابع مثل strstr() عمل می کند ولی بین حروف بزرگ و کوچک تفاوتی قائل نمی شود .
تابع strrchr() : این تابع هم مثل strstr() هستش با این تفاوت که از آخرین وقوع زیر رشته مورد جستجو تا انتهای تابع را بر میگرداند.


برچسب ها