توابع php

۶ مطلب در دی ۱۳۹۹ ثبت شده است

  • ۰
  • ۰

explode

(PHP 4, PHP 5, PHP 7)

explode — تقسیم یک متن و تبدیل آن به آرایه

توضیحات

explode ( string $separator , string $string [, int $limit = PHP_INT_MAX ] ) : array

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

پارامتر ها

separator

متن جدا کننده

string

متن اصلی

limit

اگر limit تعیین شده و مثبت باشد ، آرایه برگشتی حاوی حداکثر تعداد عناصر limitبا آخرین عنصر شامل بقیه stringاست.

اگر پارامتر limit منفی باشد ، تمام اجزا به جز آخرین -limit بازگردانده می شوند.

اگر پارامتر limitصفر باشد ، این به عنوان 1 رفتار می شود.

 

مقادیر خروجی

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

اگر جدا کننده یک رشته خالی باشد ("") ، منفجر می شود () نادرست برمی گردد. اگر جدا کننده حاوی مقداری باشد که در رشته وجود نداشته باشد و از حد منفی استفاده شود ، یک آرایه خالی برمی گردد ، در غیر این صورت آرایه ای که رشته دارد ، بازگردانده می شود.

مثال

<?php
// مثال1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// مثال 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

مثال

<?php
/ *
رشته ای که حاوی جدا کننده نباشد ، به سادگی انجام می شود
آرایه یک طول رشته اصلی را برگردانید.
* /
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );

?>

خروجی کد بالا:

array(1)
(
    [0] => string(5) "hello"
)
array(2)
(
    [0] => string(5) "hello"
    [1] => string(5) "there"
)
array(2)
(
    [0] => string(0) ""
    [1] => string(0) ""
)

 

  • زهره احمدی
  • ۰
  • ۰

implode

(PHP 4, PHP 5, PHP 7)

implode — ترکیب آیتم های یک آرایه و تبدیل به یک متن

توضیحات

implode ( string $glue , array $pieces ) : string

یا

implode ( array $pieces ) : string

 

پارامتر ها

glue

پیشفرض = خالی

pieces

آرایه

خروجی

یک متن شامل آیتم های آرایه که بین آنها مقدار glue قرار می گیرد.

 

مثال

<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

// رشته خالی هنگام استفاده از آرایه خالی:
var_dump(implode('hello', array())); // string(0) ""

?>
  • زهره احمدی
  • ۰
  • ۰

تابع ord در php

ord

(PHP 4, PHP 5, PHP 7)

ord — تبدیل بایت اول یک رشته به عددی بین 0 و 255

توضیحات

ord ( string $character ) : int

مقدار باینری اولین بایت از کاراکتر را به عنوان یک عدد صحیح بدون امضا بین 0 تا 255 تفسیر می کند.

اگر این رشته در یک کدگذاری تک بایت مانند ASCII ، ISO-8859 یا Windows 1252 باشد ، این معادل بازگشت موقعیت یک کاراکتر در جدول نقشه برداری مجموعه کاراکترها است. با این حال ، توجه داشته باشید که این عملکرد از هیچ کدگذاری رشته ای اطلاع ندارد و به ویژه هرگز یک نقطه کد Unicode را در یک رمزگذاری چند بایت مانند UTF-8 یا UTF-16 شناسایی نمی کند.

این تابع مکمل chr () است.

پارامتر ها

character

کاراکتر ورودی

مقدار خروجی

عددی بین 0 و 255.

مثال

<?php
$str = "\n";
if (ord($str) == 10) {
    echo "The first character of \$str is a line feed.\n";
}
?>

مثال:

<?php
declare(encoding='UTF-8');
$str = "🐘";
for ( $pos=0; $pos < strlen($str); $pos ++ ) {
 $byte = substr($str, $pos);
 echo 'Byte ' . $pos . ' of $str has value ' . ord($byte) . PHP_EOL;
}
?>

خروجی کد بالا


Byte 0 of $str has value 240
Byte 1 of $str has value 159
Byte 2 of $str has value 144
Byte 3 of $str has value 152

  • زهره احمدی
  • ۰
  • ۰

تابع chr در php

chr

(PHP 4, PHP 5, PHP 7)

chr — تبدیل کد اسکی به کاراکتر معادل آن

توضیحات

chr ( int $codepoint ) : string

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

این می تواند برای ایجاد یک رشته یک کاراکتر در یک رمزگذاری تک بایت مانند ASCII ، ISO-8859 یا ویندوز 1252 ، با عبور از موقعیت کاراکتر مورد نظر در جدول نقشه برداری رمزگذاری ، استفاده شود. با این حال ، توجه داشته باشید که این عملکرد از هیچ کدگذاری رشته ای اطلاع ندارد و به طور خاص نمی توان از مقدار نقطه کد Unicode برای تولید رشته در یک رمزگذاری چند بایت مانند UTF-8 یا UTF-16 عبور داد.

این تابع مکمل ord () است.

مثال

<?php
// فرض می کند که رشته به عنوان ASCII یا رمزگذاری سازگار با ASCII استفاده خواهد شد

$str = "The string ends in escape: ";
$str .= chr(27); / * اضافه کردن یک شخصیت فرار در انتهای $ str * /

/ * این اغلب مفیدتر است * /

$str = sprintf("The string ends in escape: %c", 27);
?>

مثال

<?php
echo chr(-159), chr(833), PHP_EOL;
?>

خروجی کد بالا:

aA

مثال:

<?php
$str = chr(240) . chr(159) . chr(144) . chr(152);
echo $str;
?>

خروجی کد بالا

🐘

 

  • زهره احمدی
  • ۰
  • ۰

print

(PHP 4, PHP 5, PHP 7)

چاپ یک رشته در خروجی

توضیحات

print ( string $arg ) : int

print در واقع یک تابع واقعی نیست (یک ساختار زبان است) بنابراین شما نیازی به استفاده از پرانتز با لیست آرگومان خود ندارید.

تفاوت عمده در پژواک این است که print فقط یک آرگومان را می پذیرد و همیشه 1 را برمی گرداند.

پارامتر ها

arg

پارامتر ورودی

مقادیر خروجی

همیشه 1 برگردانده می شود

مثال

<?php
print("Hello World");

print "print() also works without parentheses.";

print "This spans
multiple lines. The newlines will be
output as well";

print "This spans\nmultiple lines. The newlines will be\noutput as well.";

print "escaping characters is done \"Like this\".";

// می توانید از متغیرها در داخل دستور چاپ استفاده کنید
$foo = "foobar";
$bar = "barbaz";

print "foo is $foo"; // foo برابر با foobar است

// همچنین می توانید از آرایه ها استفاده کنید
$bar = array("value" => "foo");

print "this is {$bar['value']} !"; // this is foo !

// با استفاده از تک نقل قول ها ، نام متغیر چاپ می شود ، نه مقدار
print 'foo is $foo'; // foo is $foo

// اگر از کاراکترهای دیگری استفاده نمی کنید ، فقط می توانید متغیرها را چاپ کنید
print $foo;          // foobar

print <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon no extra whitespace!
END;
?>

 

  • زهره احمدی
  • ۰
  • ۰

echo - یک یا چند رشته را در خروجی چاپ می کند

توضیحات

echo ( string $arg , string ...$args ) : void


چاپ تمام پارامتر ها بدون کاراکتر خط جدید.

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

echo همچنین دارای یک نحو میانبر است که در آن می توانید بلافاصله برچسب باز را با علامت برابر دنبال کنید. قبل از PHP 5.4.0 ، این نحو کوتاه فقط با فعال بودن تنظیمات پیکربندی short_open_tag کار می کند.

I have <?=$foo?> foo.


تفاوت عمده برای چاپ این است که echo یک لیست آرگومان را می پذیرد و مقدار بازگشتی ندارد.


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

مثال ها
مثال شماره 1:

<?php
echo "Hello World";

// رشته ها یا می توانند به صورت جداگانه به عنوان چندین آرگومان منتقل شوند یا
// بهم پیوسته و به عنوان یک استدلال واحد منتقل شد
echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10);
echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";

// از آنجا که echo مانند عملکردی رفتار نمی کند ، کد زیر نامعتبر است.
($some_var) ? echo 'true' : echo 'false';

// با این حال ، مثال های زیر کار می کنند:
($some_var) ? print 'true' : print 'false';// print نیز یک سازه است ، اما
                                            // مانند عملکرد عمل می کند ، بنابراین
                                            // ممکن است در این زمینه استفاده شود.

echo $some_var ? 'true': 'false'; 
?>


نکته
توجه: از آنجا که این یک ساختار زبان است و نه یک تابع ، نمی توان آنرا با استفاده از توابع متغیر فراخوانی کرد.

نکته
فایده گذر از استدلال های متعدد برای استفاده از الحاق در echo با توجه به تقدم عملگر دوره در PHP. اگر چندین استدلال وارد شود ، برای اعمال تقدم نیازی به پرانتز نیست

  • زهره احمدی