آموزش PHP 7 – فصل هفتم: رشته ها (Strings)

رشته در زبان php در واقع تعدادی کاراکتر پشت سر هم است. رشته ها برای ذخیره سازی مقدار تکست بسیار مناسب هستند و همچنین زبان php عملیات های پیشفرض بسیاری برای کار کردن با رشته ها به برنامه نویسان ارائه می دهد. در این فصل از آموزش مبتدی تا پیشرفته php ما به توضیح نوع داده رشته و عملیات های قابل اجرا بر روی متغیرهای این نوع در زبان php خواهیم پرداخت.

آموزش PHP 7 – فصل هفتم: رشته ها (Strings)

منظورمان از کاراکتر های پشت سر هم چیزی است شبیه “Hello world!”

 همانطور که گفتیم عملیات های پیش فرض بسیاری در زبان php برای کار کردن با رشته ها موجود میباشد.

 در ادامه تمامی فانکشن هایی که شما می توانید بر روی یک متغیر از نوع رشته استفاده کنید را معرفی خواهیم کرد.

به دست آوردن تعداد کاراکتر های یک رشته در PHP

 با استفاده از عملیات strlen()  تا می توانید تعداد کاراکترهای موجود در یک رشته را به دست آورید.

در مثال زیر می‌توانید ببینید که رشته “Hello world” چند کاراکتر دارد:


توجه داشته باشید فانکشن strlen() تعداد اسپیس ها را نیز در محاسبه تعداد کاراکترها در نظر می گیرد.

به دست آوردن تعداد کلمات یک رشته در PHP

در زبان php با استفاده از فانکشن str_word_count() قادر است تا تعداد کلمات درون یک رشته راه به دست آورید.

مثال زیر نشان می دهد که چگونه می توانید تعداد کلمات رشته “Hello Word” را در زبان PHP به دست آورید:


برعکس کردن یک رشته در زبان PHP

اگر نیاز دارید تا یک رشته را دقیقا برعکس کنید، می توانید از فانکشن strrev() در زبان PHP استفاده کنید.

مثال برعکس کردن رشته “Hello Word” با زبان PHP:


خروجی مثال بالا dlrow olleH خواهد بود.

پیدا کردن جایگاه یک کلمه در یک رشته PHP

 برای پیدا کردن جایگاه یک کلمه در یک رشته می توانید از فانکشن strpos() استفاده کنید.

 فانکشن strpos() در زبان php یک مقدار عددی که در واقع جایگاه کلمه جستجو شده است را باز میگرداند.

 مثال پیدا کردن یک کلمه با استفاده از فانکشن strpos():


جایگزینی یک کلمه در یک رشته PHP

 گاهی نیاز است تا یک کلمه را در زبان php در یک رشته بیابیم و آن را با کلمه دیگر جایگزین کنیم.  این عملیات با استفاده از فانکشن str_replace صورت می پذیرد.

مثال جایگزین کردن یک کلمه در یک رشته در زبان php:


لیست کامل فانکشن های قابل استفاده بر روی String در زبان PHP

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

addcslashes()

یک رشته باز می گرداند با قراردادن یک بک اسلش (\) قبل از یک کاراکتر مشخص شده.

مثال:


addslashes()

یک بک اسلش در عقب و جلو کلمه مشخص شده با علامت نقل قول دوتایی قرار می دهد.

مثال:


bin2hex()

کاراکتر های ASCII یک رشته را تبدیل به هگزادسیمال می کند.

chop()

این فانکشن قادر است کاراکتر های مشخص شده را از آخر یک رشته پاک کند.

مثال حذف کلمه Word! از آخر رشته “Hello Word!”:


chr()

این فانکشن کد اسکی دریافت می کند و کاراکتر اصلی آن را باز می گرداند.

chunk_split()

این فانکشن رشته ها به صورت پلکانی می شکند. به عنوان مثال H.e.l.l.o. .w.o.r.l.d.!. نتیجه کد زیر خواهد بود:


توجه داشته باشید فانکشن chunk_split رشته اصلی را تغییر نمی دهد.

convert_cyr_string()

برای تغییر character-set یک رشته از فانکشن convert_cyr_string استفاده می شود.

convert_uudecode()

یک رشته کد شده با uuencode را دیکد می کند.

convert_uuencode()

یک رشته را با الگوریتم uuencode، کدنگاری می کند.

count_chars()

این فانکشن تعداد کاراکتر های یک رشته را می شمارد.

crc32()

32-bit CRC را برای رشته محاسبه می کند.

crypt()

رمزنگاری کردن یک طرفه رشته را انجام می دهد.

echo()

یک یا چند رشته را چاپ می کند.

explode()

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

مثال زیر یک متن را بر اساس تعداد اسپیس های آن می شکند:

fprintf()

برای ذخیره یک متن درون یک فایل مورد استفاده قرار می گیرد.

مثال نوشتن یک متن درون یک فایل در زبان PHP


نتیجه کد بالا چاپ عدد 40 خواهد بود.

همچنین متن There are 9 million bicycles in Beijing. در فایل test.txt ذخیره می شود.

hex2bin()

یک مقدار اسکی را تبدیل به هگزادسیمال می کند.

html_entity_decode()

کد های خاص اچ تی ام ال را در یک رشته ترجمه می کند.

htmlentities()

برعکس فانکشن قبلی، حروفی که قابل تبدیل به کدهای خاص HTML باشند را تبدیل می کند.

htmlspecialchars_decode()

تعدادی از حروف خاص اچ تی ام ال را در رشته ترجمه می کند.

htmlspecialchars()

عدادی از حروف قابل تبدیل را به کاراکتر های خاص اچ تی ام ال تبدیل می کند.

implode()

اعضای یک آرایه را با استفاده از یک کاارکتر خاص به هم می چسباند و به عنوان یک رشته بر می گرداند.

مثال:


join()

مشابه implode() عمل می کند.

lcfirst()

اولین حرف از رشته را به حرف کوچک تبدیل می کند. مثلا اگر A باید به a تبدیل می شود.

levenshtein()

تفاوت Levenshtein یک رشته با یک رشته دیگر را برمی گرداند.

ltrim()

اسپیس های اضافه و سایز کاراکتر ها را از سمت چپ رشته حذف می کند.

مثال:


md5()

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

md5_file()

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

metaphone()

metaphone در واقع مشخص می کند یک انگلیس زبان چگونه کلمه ای را تلفظ می کند.

money_format()

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

nl2br()

یک Line Break اچ تی ام ال به هر خط جدید اضافه می کند تا متن در خط های متفاوتی چاپ شود.

مثال:


number_format()

یک رشته را در قالب عدد جدا شده با هزارگان چاپ می کند.

سینتکس این فانکشن اینگونه است:

number_format (number, decimals, decimalpoint, separator)

مثال:


ord()

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

parse_str()

یک query string را تبدیل به آرایه می کند.

مثال:


print()

یک رشته را چاپ می کند.

printf()

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

مثال:


rtrim()

اسپیس اضافه و هر کاراکتر دیگر را از سمت راست رشته حذف می کند.

مثال:


sha1()

با استفاده از الگوریتم SHA-1، رشته را رمزنگاری می کند.

sha1_file()

با استفاده از الگوریتم SHA-1، فایل را رمزنگاری می کند.

similar_text()

میزان شباهت بین دو رشته را بازمی گرداند.

sprintf()

یک رشته فرمت شده را در یک متغیر ذخیره سازی می کند.


sscanf()

با این فانکشن می توان از درون یک رشته، چند متغیر با استفاده از یک فرمت بیرون کشید.

مثال:


str_getcsv()

یک رشته CSV را تبدیل به یک آرایه می کند.

str_ireplace()

تعدادی کاراکتر را در یک رشته جاگزین می کند. (غیر حساس به حروف بزرگ و کوچک)


str_pad()

یک رشته را به اندازه داده شده می کشد. یعنی در صورتی که تعداد کاراکترهای یک رشته به اندازه عدد داده شده نرسد، به انتهای رشته کاراکتری خاص را اضافه می کند.


str_repeat()

یک رشته را به اندازه داده شده تکرار می کند.

سینتکس استفاده از این فانکشن اینگونه است:

str_repeat (string, repeat)

str_replace()

تعدادی کاراکتر را در یک رشته، با کاراکتر های دیگر تعویض می کند.

البته فانکشن str_replace به حروف کوچک و بزرگ حساس است.

str_rot13()

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

str_shuffle()

به صورت کاملا اتفاقی ترتیب حروف رشته را به هم می ریزد.

str_split()

یک رشته را تبدیل به آرایه ای از حروف تشکیل دهنده آن می کند.

str_word_count()

تعداد کلمات یک رشته باز می گرداند.

strcasecmp()

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

strchr()

شببیه فانکشن strstr() عمل می کند.

strcmp()

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

strip_tags()

تگ های اچ تی ام ال را از یک رشته حذف می کند.

stripcslashes()

بک اسلش را از رشته حذف می کند.

stripslashes()

بک اسلش را از رشته حذف می کند.

stripos()

مکان اولین رخداد از یک رشته در رشته دیگر را باز می گرداند. (غیر حساس به حروف بزرگ و کوچک)

stristr()

اولین رخداد از یک رشته در رشته دیگر را میابد. (غیر حساس به حروف بزرگ و کوچک)

strlen()

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

strncasecmp()

n کاراکتر اول دو رشته را با یکدیگر مقایسه می کند. (غیر حساس به حروف بزرگ و کوچک)

strncmp()

n کاراکتر اول دو رشته را با یکدیگر مقایسه می کند. (حساس به حروف بزرگ و کوچک)

strpbrk()

یک رشته را در یک رشته پیدا می کند و از آن رشته به بعد را باز می گرداند.

strpos()

اولین مکان رخداد از یک رشته را در یک رشته دیگر باز می گرداند. (حساس به حروف بزرگ و کوچک)

strrchr()

آخرین رویداد از یک کاراکتر را در یک رشته باز می گرداند.

strrev()

یک رشته را برعکس می کند.

strripos()

اولین مکان رخداد از یک رشته را در یک رشته دیگر باز می گرداند. (غیر حساس به حروف بزرگ و کوچک)

strrpos()

آخرین مکان رخداد از یک رشته را در یک رشته دیگر باز می گرداند. (حساس به حروف بزرگ و کوچک)

strstr()

اولین رخداد از یک رشته در یک رشته دیگر را باز می گرداند. (حساس به حروف بزرگ و کوچک)

strtok()

یک رشته را به رشته های کوچک تقسیم می کند.

strtolower()

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

strtoupper()

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

strtr()

کاراکترهای خاصی را درون یک رشته ترجمه می کند.

substr()

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

مثال زیر از حرف ششم به بعد رشته را باز می گرداند:


substr_compare()

دو رشته را از یک نقطه خاص با یکدیگر مقایسه می کند. همچنین این فانکشن می تواند حساس به حروف بزرگ و کوچک باشد یا نباشد.

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

substr_compare (string1, string2, startpos, length, case)

substr_count()

تعداد دفعات تکرار شدن یک کلمه در یک رشته را باز می گرداند.

substr_replace()

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

trim()

اسپیس های اضافه و کاراکترهای دیگر را از چپ و راست رشته حذف می کند.

ucfirst()

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

ucwords()

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

vfprintf()

یک رشته فرمت شده را در یک فایل ذخیره می کند.

vprintf()

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

vsprintf()

یک رشته فرمت شده را در یک متغیر ذخیره می کند.

در ادامه آموزش های PHP از مبتدی تا پیشرفته نتران، پیشنهاد می کنم مطلب آموزش PHP 7 – فصل هشتم: مقدار Constant در PHP را مطالعه کنید.

اریا 4 سال پیش

سلام و درود بزرگوار

چه دستوری باید بنویسیم تا فقط مقدار های خاصی از ارایه بتونیم نمایش بدیم.

مثلا یک ارایه 6 خونه ای داریم به این صورت:

0=> vahhhid@
1=> 1nedasa
2=> saaaeid@
3=> fatim
4=> nafiuu
5=> asdhkdj@

من میخوام فقط خونه هایی که اخر رشته هاشون کاراکتر @ داره را بتونم خروجی بگیرم یا چاپ کنم

خیلی ممنون میشم راهنمایی کنید به شدت احتیاج دارم
علاوه بر php جاوا اسکریپت هم اشنایی دارم

مهدی نظری 4 سال پیش

سلام دوست عزیز، با جاوا اسکریپت این طوری:

var array = ["vahhhid@","1nedasa","saaaeid@"];
var arrayWithAtSign = array.filter(value=>value.indexOf("@") === value.length-1);
console.log(arrayWithAtSign)

با php این طوری:

$array = ["vahhhid@","1nedasa","saaaeid@"];

function checkAtSign($string){ return(strpos($string,"@") === strlen($string)-1); }

$arrayWithAtSign = array_filter($array,"checkAtSign");

امیر 5 سال پیش

عالیه کاش یه سرچ باکسی میزاشتین که بشه توابع را با نام جست و جو کرد.
اینجوری خیلی سخت میشه.

مهدی نظری 5 سال پیش

سلام امیر عزیز، ایده خوبیه. می تونم یه سرچ باکس بذارم به صورت autocomplete بالای کل لیست که بشه پیدا کرد فانکشن ها رو

اولین فرصت انجام می دم.

ممنونم از پیشنهادتون.

ویدیوها و مطالب مشابه