Web Programmer
32 subscribers
7 photos
5 videos
5 links
پشتیبان چنل: @Bot_MoMi
Download Telegram
Channel created
This media is not supported in your browser
VIEW IN TELEGRAM
👌 ریجکس رو توی این یک ساله که یاد گرفتم خیلی کاربردی و مفید بوده!!
🤔 اما ریجکس(regex) قاعده سختی نداره با یه سرچ و دیدن دوره در حد 3/4 ساعته یاد میگیرید بعدش همش تمرینه تا دستتون بیوفته.

ریجکس کاربردیه از نون شب واجب تره



📌 دوتا سایت کاربردی توی این حوزه که من زیادی استفاده میکنم:
📎 تست و خطای پترن ها: regex101
📎 پترن های آماده ریجکس: ihateregex

پ. ن:  از سایت دومی اگه مبتدی هستید بیشتر برای یادگیری پترن استفاده کنید تا کوپی پیست تا یادش بگیرید😅😅

#Regex
👍32👏1
🤔 صبح زود بیدار شدن سخته؟
ما هنگام خواب چند چرخه 90 دقیقه ای رو طی میکنیم که هر چرخه تشکیل شده از چهار مرحلس، یکی ازین مراحل خواب سبک(NREM 1) بهترین زمان برای از خواب پا شدنه و سر حال هستید.
پ. ن: وقتی از خواب میشی سر صبح دیگه احساس خستگی گیجی و سنگینی نمیکنی، یا از خواب پاشدن جون کندن نخواد.

💡 نحوه محاسبه چرخه خواب:
برای محاسبه چرخه های خوابتون سایت و برنامه های زیادی هستن، اما میتوانید از رباتی که درست کردم استفاده کنید برای راحتی کار SleepSycleBot
⁉️ چند چرخه بخوابیم بهتره:
پیشنهاد من اینه که در نرمال ترین حالت پنج الی شش چرخه بخوابید و اگر وقت کمی دارید چهار چرخه هم جوابه.
2👍1🥰1
🤔 میخواستم یه دکوریتور(شبیه پایتون) داخل php بزنم:
// Call a function like that: 
$func = 'sleep';
$func(1);
// result: finish the execution after 1 second.

قاعدتا کد بالا کار میکنه

🤦‍♂ ولی مشکل اونجایی شروع میشه که یک دستور داخلی(construct language) باشه (مانند: exit, echo, include و توابعی که پرانتزشون اختیارین)، و بصورت بالا اجرا نخواهد شد:
// Call a construct language like that: 
$construct_language = 'exit';
$construct_language();
// result: Error, the function doesn't found🗿

// Or call like that:
$construct_language = exit; // the 'exit' was executed.
echo 'korreh khar'; // doesn't show.
$construct_language();


حالا راه حل مستقیمی وجود نداره، ولی تنها راه حلی که مد نظرم بود:
// Call a construct language like that: 
$exit = function($param){
exit($param);
};
$exit("You don't access");


👤 ممنون میشم اگه راه حل منطقی تری دارید به اشتراک بگذارید تا پیامتونو به چنل فوروارد کنم:

🆔 @Bot_MoMi
1👍1🥰1
‼️ یک سینتکس جالب و یذره ناشناخته در PHP وجود داره به نام fn هست، که برای معرفی توابع پیکان (Arrow Functions) استفاده میشود و از نسخه PHP 7.4 به بعد قابل استفاده.

دلیل آن که توابع پیکان (Arrow Functions) در PHP طراحی شده‌اند، این است تا بسیار مختصر و ساده باشند.

توابع پیکان نیاز به کلمه کلیدی return و براکت {} ندارند.

برای توابع ساده‌ای که یک خط کد دارند، ایده‌آل هستند.

⁉️ نمونه استفاده از fn در PHP:
$double = fn($x) => $x * 2;
echo $double(5); // خروجی: 10


😍 و نکته جالب این است توابع پیکان به طور خودکار متغیرهای موجود در دامنه اصلی را به ارث می‌برند:
$factor = 3;
$triple = fn($x) => $x * $factor;
echo $triple(5); // خروجی: 15
2👍1🥰1
وقتی عقده ای هستی نمیخوای کسی از کدت سر در بیاره: 💀
$name ??= $_GET['name'] ?? "NotName"; 
$$name ??= 'ws://mybaby.com';
echo isset($im_sajjad) ? "Hi admin": "Hi user";


فقط وب سوکت مای‌بی‌بی 🤣
🤣2👍1😁1
⁉️ آیا UTM میدونی چیه؟
در واقعیت UTM که مخفف شده "Urchin Tracking Module" مجموعه‌ای از پارامترها است که به URLها اضافه میشه تا ردیابی دقیق‌تری از ترافیک سایت فراهم کنه.
به فرض مثال:
https://example.com/?utm_source=facebook&utm_medium=social&utm_campaign=summer_sale&utm_content=ad_version_2

👌 توضیح:
1. پارامتر utm_source: مشخص میکنه که ترافیک از کدام منبع اومده.

2. پارامتر utm_medium: نوع رسانه‌ای که برای ارسال ترافیک به سایت شما استفاده شده رو مشخص می‌کنه، این میتونه شامل تبلیغات پولی، ایمیل، یا ارجاعات غیر مستقیم باشه.

3. پارامتر utm_campaign: این پارامتر به شما کمک میکنه تا یک کمپین خاص را ردیابی کنید. معمولاً برای کمپین‌های بازاریابی خاص مانند تخفیف‌ها، فروش ویژه یا تبلیغات ویژه استفاده میشه.

4. پارامتر utm_term: برای ردیابی کلمات کلیدی استفاده میشه که در کمپین‌های تبلیغاتی PPC به کار می‌روند. این پارامتر معمولاً در تبلیغات جستجوی گوگل کاربرد دارد.

5. پارامتر utm_content: به شما این امکان را می‌دهد که نسخه‌های مختلف تبلیغات یا لینک‌ها را از هم تفکیک کنید.
😁 مثلا میخواین متوجه بشید چت جی‌پی‌تی سایتتون رو به کاربر معرفی کرده:
// URL:  https://www.example.com/?utm_source=chatgpt.com
if(@$_GET['utm_source'] === "chatgpt.com"){
echo "Hey, Did you come from chatgpt.com? "
}


⭕️ نکته قابل توجه‌ش شاید این ساختار زیاد جا نیوفتاده تو ایران
2👍1👏1
🤔 هیچ میدونستی کلید‌واژه static به جز کلاس ها در توابع هم استفاده میشه؟

function test()
{
static $a = 0;
echo $a;
$a++;
}

test(); // result: 0
test(); // result: 1
test(); // result: 2


⁉️ در زبان PHP، کلمه‌ی کلیدی static برای متغیرها درون توابع(همچنین در کلاس‌ها) به این معناست که مقدار متغیر در بین فراخوانی‌های متوالی تابع حفظ می‌شود.
👏21👍1
تا به حال عین فضایی ها کد زدین؟ 😂

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

⁉️ منظور مرتب‌سازی:
اگه با توابعی همچون usort یا uasort یا uksort کار کرده باشید میدونید که یه پارامتر قابل‌فراخونی(callable) دریافت میکنه. که شما بجای استفاده از if else های تو در تو و یا اضافه ازین عملگر استفاده میکنید.


💡 نحوه عملکرد:
سینتکس: a <=> $b$

🔰 این عملگر مقادیر زیر را بازمی‌گرداند:
0⃣ عدد -1: اگر a کوچکتر از b باشد.
2⃣ عدد 0: اگر a برابر b باشد.
3⃣ عدد 1: اگر a بزرگتر از b باشد.

👌 مثال استفاده از آن:
usort($array, function ($a, $b) {
return $a <=> $b;
});


پ.ن: حق میدم اگه باور نکنی PHP شخصاً برای اینجور توابع عملگر زده بوده 😂
😁2
کامند گذاشتن من ییشتر جنبه زیبایی داره تا راهنمایی 😂😂
🤣2
Web Programmer
??=
خب بریم به یه عملگر دیگه گیر بدیم.

💡 در زبان PHP، عملگر ??= به عنوان "Null Coalescing Assignment Operator" یا انتساب هم‌گذاری با نال شناخته میشه.

🧬 سینتکس:
$datas = [
"ok" => true,
"file_name" => null,
];

//=================
$datas["file_name"] ??= "default.php";
$datas["can_edit"] ??= false;

//=================
var_dump($datas["ok"]); // (bool) true
var_dump($datas["file_name"]); // (string) default.php
var_dump($datas["can_edit"]); // (bool) false


👌 کاربردش اینه اگه داده ای نال(یا اصن وجود نداشته باشه) باشه بجای ای اینکه از is_null یا isset استفاده کنی و شرطو شروط بزاری از یه عملگر ساده استفاده میکنی که خیلی خلاصه تره.
👍21
💡 همون‌طور که می‌دونید، دو کلیدواژه‌ی break و continue برای کنترل حلقه‌ها (مثل while، for و ...) و شروط (مثل switch) استفاده میشن.

اما تا حالا براتون سوال شده که چطور می‌تونید از داخلی‌ترین حلقه در یک حلقه‌ی تو در تو، بیرونی‌ترین حلقه رو break یا continue کنید؟ 🤔

مثلاً کد زیر رو ببینید:
$break_outermost_loop = false;
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
if ($j == 1) {
// break the outermost loop
$break_outermost_loop = true;
break;
}

// some code...
}

if ($break_outermost_loop) {
break;
}

// some code...
}

⭕️ شاید به ذهنتون برسه که می‌شه به این شکل حلقه‌ی بیرونی رو متوقف کرد. اما اگه تعداد حلقه‌های تو در تو بیشتر باشه، چی؟

زبان PHP برای این مسئله راه‌حلی داره!
با استفاده از یک عدد بعد از break یا continue، می‌تونید مشخص کنید که چند سطح از حلقه‌ها شکسته یا ادامه داده بشه:
for ($i = 0; $i < 3; $i++) { // level 2
for ($j = 0; $j < 3; $j++) { // level 1
if ($j == 1) {
break 2; // break level 1 and level 2 simultaneously
}

// some code...
}

// some code...
}

💡 نکته: کلیدواژه‌های break N و continue N از حلقه‌ی داخلی‌ترین سطح (1) شروع میشن و هر بار که یک سطح بیرونی‌تر میریم، مقدار N باید بزرگ‌تر بشه.

🔆 مثال:
• در break 1 فقط حلقه‌ی داخلی رو متوقف می‌کنه.
• در break 2 دو حلقه‌ی داخلی‌تر رو متوقف می‌کنه.
• در continue 2 پرش رو تا حلقه‌ی سطح 2 انجام میده و ...


این روش برای کنترل بهتر جریان اجرای برنامه در حلقه‌های تو در تو خیلی مفیده! 🚀
👏3👍1