۵ سال پیش پی اچ پی(PHP)(کد) ۱
فرض کنید که میخواهید اختلاف دو زمان را به ساعت، دقیقه و ثانیه بدست آورید...
۵ سال پیش(به روز شده در ۵ سال پیش) پی اچ پی(PHP)(کد) ۰
۶ سال پیش(به روز شده در ۶ سال پیش) پی اچ پی(PHP)(کد) ۰
۷ سال پیش(به روز شده در ۶ سال پیش) پی اچ پی(PHP)(کد) ۲
گاهی لازم است محتوای یک صفحه وب را بگیریم. در PHP توابع بسیاری برای این منظور وجود دارد اما تابع stream_get_contents
بر اساس تجربه ما سرعت بیشتری دارد. مزیت این تابع کنترل دریافت مقدار بر اساس بایت است تا بیش از حد مقدار فضای رم در صورت حجیم بودن صفحه اشغال نشده و بتوان ورودی را کنترل نمود.
function get_content($url, $max = -1) { $contents = ''; if($stream = fopen($url, 'rb')) { $contents = stream_get_contents($stream, $max); fclose($stream); } return $contents; }
۷ سال پیش(به روز شده در ۲ سال پیش) پی اچ پی(PHP)(کد) ۷
عبارات منظم(Regex) در رابطه با رشته ها بسیار پر کاربرد هستند. یعنی با تعریف یکسری از قوانین می توان رشته ورودی را بدلخواه تغییر یا پردازش نمود. بعنوان مثال کد زیر هشتگ ها را شناسایی کرده و سپس بجای کلمه ، پیوند بهمراه با کلمه جایگزین می گردد. بعنوان مثال:
echo preg_replace('/#(\w+)/si', '<a href="#">#$1</a>', 'English #Text for test'); // out = English #Text for test
حال زمانی که حروفی غیر از حروف انگلیسی در متن باشد آنوقت است که تابع بالا بدرستی کار نمی کند(یعنی مشکل از Regex است) بعنوان مثال:
echo preg_replace('/#(\w+)/si', '<a href="#">#$1</a>', 'متن #فارسی برای تست'); // out = متن #��ارسی برای تست
جهت رفع این مشکل کد رجکس بالا را اصلاح می کنیم تا برای سایر زبانها نیز کاربرد داشته باشد. برای این منظور در آخر عبارت مقدار u
برای تعریف رشته UTF-8 و مقدار pL
نیز برای معرفی کاراکترهای سایر بکار گرفته می شود. البته این امر بنوعی مرتبط با یونیکدهاست. کد اصلاح شده:
echo preg_replace('/#(\pL+)/ui', '<a href="#">#$1</a>', 'متن #فارسی برای تست'); // out = متن #فارسی برای تست
۷ سال پیش(به روز شده در ۷ سال پیش) پی اچ پی(PHP)(کد) ۰
۷ سال پیش(به روز شده در ۷ سال پیش) پی اچ پی(PHP)(کد) ۰
کد زیر عدد دسیمال یا ده دهی را به دودویی یا باینری تبدیل می کند.
$i = 0;
$s = 0;
$n = 17; //input
while ($n > 0) {
$m = (int)($n / 2);
$r = $n - $m * 2;
$s = $s + $r * pow(10, $i);
$i++;
$n = $m;
}
echo $s; //out = 10001
۷ سال پیش(به روز شده در ۷ سال پیش) پی اچ پی(PHP)(کد) ۲
با استفاده از کد زیر می توانید متن بین یک تگ خاص را بگیرید:
$str = 'this is a <strong>text</strong>.<a>hello</a> world...';
$tagname = 'a';
preg_match("/<$tagname>(.*?)<\/$tagname>/s", $str, $matches);
echo $matches[0]; //out = hello