article

آموزش برنامه نویسی وب با PHP

php

در طی مسیر فراگیری دانش و توسعه مهارتهای برنامه نویسی وب پس از آموختن کلیاتی از CSS, HTML و JavaScript دیر یا زود اسمی از یک زبان برنامه نویسی سمت سرور مانند PHP به گوشمان خواهد خورد، ساختار وب به گونه ای است که از دو بخش سمت کاربر (مرورگر) و سمت سرور (جایی که صفحه وب یا برنامه تحت وب در آن قرار دارد) تشکیل شده و لذا صرف آشنایی با آنچه تا کنون آموخته ایم نمی تواند برای انجام فعالیت های حرفه ای و طراحی سیستم های پیشرفته کافی باشد و لزوما باید یک زبان برنامه نویسی سمت سرور مانند PHP را فرا بگیریم، با PHP می توانیم به صورت پویا آنچه را که کاربر باید در صفحه مرورگر خود ببیند مدیریت کنیم، به طور مثال اگر فرم اولیه ورود به سایت با HTML و CSS طراحی شده باشد، پس از ارسال نام کاربری و کلمه عبور به سرور، این PHP است که وظیفه تطبیق اطلاعات با پایگاه داده و صدور اجازه یا عدم اجازه دسترسی به پنل مدیریت را بر عهده دارد، با PHP می توانیم تقریبا هر خواسته ای که از سرور داشته باشیم را عملی و صفحات وب داینامیک و برنامه های تحت وب حرفه ای طراحی کنیم.

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


اگر بخواهیم PHP را به زبان ساده تعریف کنیم می توانیم آن را زبان برنامه نویسی اسکریپتی چند منظوره بنامیم که به طور خاص برای وب توسعه یافته و جهت نوشتن برنامه های تحت وب کاربرد تخصصی دارد، این تعریف ترجمه ساده از عبارتی است که در سایت php.net درج شده است:
PHP is a popular general-purpose scripting language that is especially suited to web development.
این زبان در سال 1994 میلادی توسط Rasmus Lerdorf با هدف نمایش آنلاین اطلاعات و رزومه شخصی به زبان C نوشته شد که به همین دلیل در ابتدا آن را Personal Home Page نامیدند که PHP مخففی از سرواژه های این عبارت است، بعدها با پیشرفت PHP عبارت توضیحی HyperText Preprocessor (پیش پردازنده ابرمتن) جایگزین عبارت فوق شد، منظور از پیش پردازنده ابرمتن این است که PHP ابتدا کدها و دستورات را با مفسر خود پردازش کرده و سپس خروجی را به مرورگر کاربر ارسال می کند.
نکته: منظور از اسکریپتی بودن PHP این است که کدهای آن در مفسر سرور پردازش شده و مانند برنامه های رایج در قالب یک بسته نرم افزاری کامپایل نمی شوند.

چرا PHP بیاموزیم و با PHP برنامه نویسی کنیم؟


اغلب علاقمندان به فراگیری دانش برنامه نویسی وب پس از اینکه از مرحله زبان های سمت کاربر عبور می کنند در دو یا بعضا چندراهی انتخاب یک زبان برنامه نویسی سمت سرور به شک و تردید دچار می شوند، محدودیت های زمانی، انرژی و حوصله ای که برای فراگیری یک زبان برنامه نویسی صرف می شود این انتخاب را بیش از پیش حساستر کرده و حتی آینده حرفه ای ما را رقم می زند، اگر در وب عباراتی مانند "PHP یا ASP کدام بهتر است؟!" را جستجو کنید، ملاحظه می کنید که اغلب بین برنامه نویسان در این خصوص که کدام زبان مناسب تر است بحث های طولانی و بعضا متعصبانه رخ داده و هر کسی با دید خود به این قضیه نگاه می کند، اما واقعیت این است که هیچ زبانی کامل و بی نقص نیست و ما هم قصد نداریم PHP را با زبان های دیگر مقایسه کنیم چرا که هیچ محدودیتی از این نظر که بتوانیم از چند زبان برنامه نویسی استفاده کنیم وجود ندارد و در واقع مرزی برایمان به عنوان برنامه نویس نباید ترسیم کنیم، PHP را می آموزیم چون متخصص در امر وب است و تمام نیازهایمان را به خوبی پوشش می دهد، چون ساده و در عین حال قدرتمند، سریع و امن است، رایگان، کم دردسر و در دسترس است، کدنویسی با PHP اغلب به درک بهتر ساختار و پیچیدگی های وب کمک می کند، PHP از شیوه های برنامه نویسی معمولی و شی گرا به خوبی پشتیبانی می کند، برای کار با پایگاه داده اکستنشن های قوی و تخصصی دارد، PHP متن باز (Open-source) است و آنگونه که توسعه محصولات شرکت های بزرگ به پدیدآورنده محدود می شود وابسته به شرکت خاصی نیست، اغلب برنامه های رایگان و پرکاربرد مدیریت محتوای وب (CMS) به زبان PHP نوشته شده اند مانند وردپرس، جوملا، دروپال و...، PHP توسط گروهی حرفه ای از برنامه نویسان وب پشتیبانی می شود، وجود سایت مرجع php.net و جامعه وسیعی از کاربران در سطح وب خود نویدبخش رشد شتابان PHP و رفع نواقص احتمالی نسبت به زبان های مشابه و آینده روشن است، لذا می توان PHP را یکی از مناسبترین گزینه ها برای برنامه نویسی سمت سرور به شمار آورد.

فراگیری PHP، آسان و شیرین!


شاید در نگاه اول آموختن PHP کاری پیچیده به نظر برسد اما اصولا برای یادگیری زبان های برنامه نویسی کافیست ایده های ذهنی مان را خط به خط روی کاغذ بنویسیم و سپس با توجه به دستورالعمل و شیوه نگارش (Syntax) هر زبانی به دنبال راه حل تبدیل و فهماندن ایده به سیستم شویم (تبدیل زبان انسان به زبان ماشین)، این روند در مورد PHP نیز صادق است و خوشبختانه می توان این زبان را جزء آسانترین و شیرین ترین زبان های برنامه نویسی قلمداد کرد که در عین قدرتمندی از سادگی و روانی خاص خود برخوردار است، یادآور می شویم PHP یک زبان برنامه نویسی است و قاعدتا مباحث آن به هم مرتبط و حالت سلسله مراتبی خواهند داشت، لذا اکیدا توصیه می کنیم آموزش ها را گام به گام، آهسته و پیوسته و با تمرین کافی فرا بگیرید تا شیرینی کدنویسی با این زبان را به بهترین نحو تجربه کنید.

برای کدنویسی PHP از چه برنامه ای استفاده کنیم؟


اکنون که با کلیات برنامه نویسی با PHP آشنا شدیم نوبت به ورود عملی به این مسیر است، در اولین گام این سوال مطرح می شود که برای کدنویسی PHP از چه برنامه ای باید استفاده کنیم؟ در پاسخ می توان چند برنامه قوی و کاربردی مختلف را پیشنهاد داد از جمله برنامه قدرتمند و مناسب PhpStorm (توصیه می کنیم برای شروع از این برنامه استفاده کنید)، برنامه شرکت ادوبی با نام Adobe Dreamweaver، برنامه رایگان و متن باز NetBeans IDE - PHP Development با محیط کدنویسی قوی و پشتیبانی مناسب، در کنار این برنامه ها استفاده از ویرایشگرهای به ظاهر ساده مانند ++Notepad برای کار با فایل های PHP ضروری خواهد بود، خوشبختانه تمام موارد نامبرده با یک جستجوی کوتاه در وب در دسترس می باشند.

اجرای کدهای PHP در سیستم عامل


از آنجایی که PHP یک زبان سمت سرور (Server-side) است برای اجرای آن در سیستم خود نیاز به برنامه هایی تحت عنوان سرور مجازی (Localhost) داریم که اغلب به صورت رایگان در دسترس هستند، برای نمونه یکی از بهترین ها در آدرس زیر قابل دریافت است:
wampserver.com
همچنین:
appservnetwork.com
و همچنین:
apachefriends.org
پس از نصب هر یک از برنامه های WampServer، AppServ یا XAMPP اکنون شما قادر به اجرای فایل های PHP بر روی سیستم خودتان خواهید بود (توصیه می کنیم یکی از نسخه های برنامه WampServer را متناسب با سیستم خود انتخاب کرده و نصب نمائید)، پس از نصب و اجرای برنامه به آیکن مربوطه که معمولا در نوار وظیفه سیستم عامل مشخص است دقت نمائید، به طور مثال برنامه WampServer در حالت عادی آیکنی سبزرنگ را نمایش می دهد و این یعنی سرور مجازی شما فعال و آماده به کار است، اکنون برنامه ویرایشگر فایل های PHP خود (به طور مثال PhpStorm) را اجرا و فایلی با نام example.php (فایل فرضی و نام دلخواه) در فولدر www محل نصب سرور مجازی ذخیره نمائید، به فرض اگر برنامه WampServer را در درایو C در فولدر Wamp قرار داده باشید، ریشه سرور مجازی شما به صورت نمونه زیر خواهد بود:
C:\Wamp\www
فایل example.php را درون این فولدر قرار دهید، بهتر است این فایل با نمونه کدهای ساده HTML کدنویسی شده باشد تا در هنگام گرفتن خروجی نتیجه مشخص شود، در نهایت مرورگرتان را اجرا کرده و عبارت http://localhost/example.php را در قسمت نوار آدرس نوشته، دکمه Enter را در صفحه کلید بزنید تا فایل از فولدر www فراخوانی شود، اگر همه چیز صحیح باشد صفحه وب شما در مرورگر نمایش داده خواهد شد درست مانند اینکه یک سایت آنلاین بر روی سرور واقعی برپا کرده باشید (در سرور آنلاین نیز معمولا ریشه سایت فولدر public_html یا www است).

چند مثال ساده با PHP


فلسفه پیدایش PHP (سال 1994 میلادی توسط Rasmus Lerdorf) ایجاد صفحات داینامیک و استفاده از آن در وب بوده (هرچند PHP را می توان به صورت General-purpose استفاده کرد) لذا می توان دستورات این زبان را در کنار کدهای ساده HTML درج و اجرا کرد (در اصطلاح PHP را HTML-embedded می گویند) این قابلیت یکی از نقاط قوت PHP محسوب شده و یادگیری آن را ساده تر می کند، برای شروع و آشنایی بیشتر کدها و مثال هایی ساده از این زبان را مرور می کنیم:
<?php
echo "اولین کد PHP من!";
?>
توضیح:
- کدهای PHP با تگ علامت سوال ، php شروع و با علامت سوال بسته می شوند (شیوه استاندارد).
- دستور echo مقادیر را به خروجی ارسال و در مرورگر چاپ می کند.
حال به کد زیر توجه کنید:
<?php
$text = "اولین کد PHP من!";
echo $text;
?>
پیش نمایش
توضیح:
- در کد بالا عبارت اولین کد PHP من! به جای اینکه مستقیما به echo داده شود، ابتدا به یک متغیر (در آینده در این رابطه مفصل خواهیم گفت) نسبت داده شده و سپس مقادیر متغیر با دستور echo به خروجی داده می شود (علامت $ در PHP نشان دهنده متغیر است).
حال به مثال زیر توجه کنید:
<?php
$num1 = 20;
$num2 = 50;
$total = $num1 + $num2;
echo $total;
?>
پیش نمایش
توضیح:
- کد بالا مقدار متغیر total را به خروجی خواهد داد و متغیر total برابر است با حاصل جمع دو متغیر num1 و num2 که اعدادی به دلخواه به آنها داده ایم.
- ملاحظه می کنید که PHP قدرت محاسبه منطقی دارد و می توان با آن از ترکیب چند مقدار یک مقدار جدید به دست آورد، این مثال ها اولیه و ساده هستند اما ما را با دنیای جدیدی آشنا می کنند که همان داشتن تفکر و هوش منطقی است و رفته رفته ذهنمان را برای نوشتن برنامه های سیستماتیک، طراحی الگوریتم ها و ساختارهای پیچیده تر وب آماده می کنند.
مثالی دیگر:
<?php
$name = 'Webgoo';
if ($name == 'Webgoo'){
    $hi = 'سلام وبگو!';
}
else{
    $hi = 'سلام، لطفا در سایت عضو شوید!';
}
echo $hi;
?>
پیش نمایش
توضیح:
- if (اگر) و else (در غیر اینصورت) برای ایجاد شرط منطقی به کار می روند و علامت == نشان دهنده برابری دو طرف آن است، اینها ابزارهایی است که در دنیای برنامه نویسی به کارمان می آیند و می توانیم به کمک آنها زبان انسان را به زبان ماشین تبدیل کنیم، در تفسیر کد بالا ابتدا متغیر name را با مقادیر از پیش تعریف شده Webgoo مقدار دهی کرده ایم (می تواند هر چیز دیگری باشد)، سپس با شرط if بررسی کرده ایم که اگر متغیر name برابر با مقدار Webgoo باشد، دستور echo داخل شرط if که بین دو علامت {} مشخص است اجرا شود، در غیر اینصورت قسمت else اجرا خواهد شد.
تقریبا هر آنچه که از وب بخواهید با PHP دستیافتنی است، در ادامه مطالب بخش آموزش های مقدماتی PHP در این باره بیشتر خواهیم گفت.
sectionدسته بندی: آموزش مقدماتی » PHP
related مطالب بیشتر:
» عملگرها (Operators) در PHP
» توابع کار با آرایه در PHP - بخش دوم
» توابع (Functions) در PHP
» توابع کار با آرایه در PHP - بخش اول
» آرایه (Array) در برنامه نویسی PHP
commentنظرات (۱۴۶ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: امیرحسین
۱۹:۰۸ ۱۳۹۶/۱۲/۱۲
سلام
کار نکرد کدها
من میخوام دقیقا یک همچین اتفاقی واسه کدهام بیوفته
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
که هر آدرسی در سرور کاربر درخواست کرد بفرسته به صفحه ایندکس و به همراه کوئری استرینگ هاش
مثلا کاربر این درخواست رو میزنه
http://localhost/index/index
پشت صحنه این آدرس ارسال میشه
http://localhost/index.php?url=index/index
خب اگه فقط همین کارو بخوام کنم مشکلی نداره و کاملا حله اما یک کار دیگه هم میخوام انجام بدم که این کارو بخوام کنم مشکل پیش میاد و همین کار قبلی هم دیگه اصلا کار نمیکنه و اون کار اینه که میخوام کاربر حتما به صورت ادرس دهی mvc استفاده کنه اگه ادرس درخواستی یک فایل واقعی یا پوشه واقعی بود خطای forbidden صادر شود
پاسخ: 
با توجه به جمیع توضیحات به نظر دستورات زیر مشکل را رفع خواهد کرد:
RewriteEngine On
RewriteRule ^index.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
RewriteRule ^(.+)$ - [F,NC,L]
نویسنده: رضا
۱۹:۴۷ ۱۳۹۶/۱۲/۲۱
باسلام
چرا ⁦‪cURL‬⁩ من در ⁦‪PHP‬⁩ 5.5 کار می کند ولی در PHP 7 به بالا خیر مشکل کجاست؟
پاسخ: 
ظاهرا این یک باگ در نسخه PHP 7.0.3 است، نسخه PHP خود را به 7.0.4 و بالاتر ارتقاء دهید یا اینکه فعلا از نسخه های پائین تر استفاده کنید!
نویسنده: امیرحسین
۱۱:۲۱ ۱۳۹۷/۰۱/۰۲
سلام استاد عزیز سال نو مبارک و امیدوارم سال خوبی رو در پیش داشته باشید و موفق باشید همیشه
یه سوال داشتم من دوتا صفحه دارم که این کدها داخلش نوشتم
page a.php
<?php
session_start();
$i = 0;
while($i < 20){
$i++;
sleep(1);
}
echo 'salam';
?>
page b.php
<?php
session_start();
echo 'salam';
?>
در صفحه اول گفتم تا 20 ثانیه اجرا بشه ولی صفحه دوم هیچ کد sleep یا کدی که باعث تاخیر اجرا شدن برنامه بشه ننوشتم حالا من هر دو صفحه رو همزمان باز میکنم یعنی اول صفحه a.php رو باز میکنم و همون لحظه صفحه b.php رو باز میکنم ولی صفحه b.php منتظر میمونه تا صفحه a.php لودینگش کامل بشه بعد صفحه دوم (b.php) لود میشه یعنی صفحه ی اول که با تاخیر اجرا میشه ولی صفحه دوم که بدون تاخیر اجرا میشه با این حال صفحه دوم هم منتظر صفحه اول میمونه و چیزی که جالب تر شده من در صفحه دوم کد
session_start();
رو بردارم دیگه منتظر لود شدن صفحه اول نمیمونه و همون لحظه لود میشه حالا علت این چیه ؟؟ جای تعجب داره!
پاسخ: 
ضمن تبریک سال جدید و با آرزوی بهترین ها...
PHP برای جلوگیری از ایجاد تغییرات ناخواسته در اطلاعات فایل Session در سرور تا زمانی که یک درخواست مربوط به نشست فعلی در حال اجرا باشد، حالت قفل یا Lock را بر روی فایل Session ایجاد می کند که در این صورت اطلاعات توسط درخواست های دیگر قابل ویرایش نیست و به این علت اجرای عملیات جدید تا پایان یافتن عملیات قبل و آزاد شدن فایل Session به تاخیر می افتد، برای تغییر این حالت آموزش زیر مفید خواهد بود:
https://ma.ttias.be/php-session-locking-prevent-sessions-blocking-in-requests/
نویسنده: امیرحسین
۲۱:۲۳ ۱۳۹۷/۰۱/۰۲
مشکل سوال قبلیم مربوط comet همین مشکل session_start بود که یافتمش و البته با توضیحات مفید شما بسیار ممنون امیدوارم همیشه موفق باشید
نویسنده: mohammad
۰۰:۲۴ ۱۳۹۷/۰۱/۰۶
سلام
درود بر شما واقعا می خواهید روی سایت w3school را کم کنید خداییش بعنوان یک ایرانی غرور برم داشت داداش حتما به مجموعه ات دانلود پی دی اف بگذار علی الخصوص تصمیم داری این راه پیچ پیچی را برای ما هموارتر کنی من بعنوان یک وب دولوپمنت webdevelopement عاشق سایتتان شدم خواهشمندیم حتما منابع مرجع برای آموزش های خود که قابل دانلود فارسی و بدون پرداخت هزینه باشد استفاده نمایید مثل itpdf or freebookpdf همیشه یک پروژه را پس از اتمام کامل تدریس صفر تا صد شرح و قدم به قدم تکامل دهید نکته بعد اینکه امنیت و راههای بالابردن آن در PHP mysql خیلی مفید خواهد بود مباحث شما مثل سایت فرادرس کم رنگتر بهتر مثل رضا معظمی کارتان را ادامه بدهید Svg و فن آوری نو در زمینه گرافیک وب مباحث جالب توجهی است که کمتر تا امروز صحبت شده خواهش دارم در خصوص توسعه وب اپها بیشترین زمان را بگذارید تا امروز افراد با خیال راحتری بدون واسط سرور و فقط ارتباط مرورگر خود در ارتباط باشند خواهش دارم مباحث بسیار بروز خود را در خصوص رمزنویسی و علی الخصوص رمزنویسی وب با PHP & mysql مطرح نمایید شاید جالب باشد در خصوص هک و امنیت در وردپرس نیز مطالب عرضه نمایید نیاز جامعه وب امروز بیشتر بر پایه html has PHP mysql می باشد
پاسخ: 
بسیار ممنون از لطف و توجهی که دارید، پیشنهادات شما فوق العاده ارزشمند هستند و حتما مورد به مورد بررسی و در سیاست گذاری آینده سایت لحاظ خواهند شد.
نویسنده: ابوالفضل
۲۲:۴۱ ۱۳۹۷/۰۴/۲۷
سلام استاد مانند همیشه باز من به مشکل بر خوردم استاد من میخوام بخش جستجوی سایت خودم رو هوشمند تر کنم مثلا کاربر اگر کلمه 'هیچکس' رو نوشت با هیچ کس فرقی نکنه و نتایجی که هر دو این کلمات توش هست رو بیاره
استاد چه راه کاری دارین چگونه عمل کنم بهترین روش هست
ممنونم ازتون
پاسخ: 
مشابه این سوال قبلا مطرح و پاسخ آن داده شده است! سیستم جستجو ممکن است در ظاهر ساده به نظر برسد اما اگر بخواهیم فرآیند آن هوشمند باشد، الگوریتم پیچیده ای می طلبد، در مورد سوالتان راه حل موتورهای جستجو استفاده از ستون عبارات مشابه است، یعنی یک عبارت را به عنوان اصل در نظر گرفته و برای آن ستون عبارات مشابه قرار می دهند که کلمات هم مفهوم با اشکال دیگر در این ستون درج می شود، در هنگام پرس و جو به صورت داینامیک (با عبارت دستوری OR) پرس و جو را توسعه می دهند:
SELECT id, post FROM tbl WHERE col LIKE '%word_1%' OR col LIKE  '%word_2%' LIMIT 10
قاعدتا این کلمات مشابه نیز باید توسط ما برای سیستم تعریف شوند، خلاصه کلام اینکه برای ایجاد این قابلیت راه حل ساده ای وجود ندارد و باید الگوریتم پیچیده ای با توجه به توضیحات بالا بنویسید.
نکته: موتورهای جستجو معمولا از سیستم ایندکس کلمات استفاده می کنند، یعنی ابتدا کل مطلب را با ربات خزنده دریافت، سپس کلمه به کلمه تجزیه و فراوانی هر کلمه را در دیتابیس خود ذخیره می کنند، در هنگام جستجو نیز با الگوریتم هایی، شباهت، دفعات تکرار کلمات و... را محاسبه کرده و بر همین اساس نتایج مرتبط با عبارت جستجو شده را نمایش می دهند، البته همان طور که گفتیم این مسئله به ظاهر ساده است اما الگوریتم پیچیده ای دارد!
نویسنده: امیرحسین
۲۲:۱۵ ۱۳۹۷/۰۷/۲۸
سلام استاد عزیز تبریک و نهایت خوشحالی منو جهت بروزرسانی سایتتون قبول کنید
یه سوالی داشتم:
تابع file_get_contents در php میخوام یه فایل لوکال رو بخونم اما نمیتونم میگه همچین فایلی وجود نداره ! حتما باید ادرسی که میدم با http یا https شروع شده باشه مگه ! اگه بخوام فایلی که لوکال هست چطوریه منظورم فایل مطلق اگه اسمشو درست گفته باشم با کد منظورمو میرسونم
file_get_contents("avatars/getavatar.php?url=file1.jpg");
میگه همچین فایلی وجود ندارد
ولی اگه اینطوری ادرس بدم کار میکنه
file_get_contents("http://localhost/avatars/getavatar.php?url=file1.jpg");
لطفا راهمنایی بفرمایید
پاسخ: 
ممنون از نظر لطف شما، در خصوص سوال، ارجاع به هر فایلی در PHP باید با توجه به محل اجرای تابع تعیین شود، به احتمال زیاد با توجه به محل اجرای تابع file_get_contents مسیر فایل avatars/getavatar.php صحیح نیست و Path دسترسی به سورس برای مفسر PHP به نحو ناقص تفسیر می شود، با توجه به اینکه به سورس ها دسترسی نداریم به صورت احتمالی یکی از حالت های زیر را امتحان کنید:
../avatars/getavatar.php

../../avatars/getavatar.php

../../../avatars/getavatar.php
برای اینکه دغدغه آدرس دهی را نداشته باشید پیشنهاد ما استفاده از مسیرهای از پیش تعیین شده با define است، مثال:
define("LOCAL_PATH", "http://localhost/");
file_get_contents(LOCAL_PATH . "avatars/getavatar.php?url=file1.jpg");
کافی است یک بار مسیر را ترجیحا در یک فایل جداگانه تعریف و در هرکجای برنامه مورد نیاز بود include کرده و از آن مطابق نمونه استفاده کنید.
نویسنده: محمد
۱۲:۲۶ ۱۳۹۷/۱۲/۱۹
میتونم تابع mb_strlen را فعال کرد؟
پاسخ: 
بله، این تابع برای محاسبه تعداد کاراکتر رشته، سازگار با یونیکد است، به فرض برای زبان فارسی:
$lenght = mb_strlen($string, 'UTF-8');
برای تست تعداد کاراکتر نمونه متن فارسی را امتحان کنید، اگر مقدار صحیح بود و خطایی دریافت نکردید این امکان در سرور شما فعال است، در غیر اینصورت باید از تنظیمات PHP آن را فعال کنید یا از مدیریت سرور بخواهید که اکستنشن php_mbstring را فعال کند.
نویسنده: امیرحسین
۲۱:۱۵ ۱۳۹۸/۰۲/۳۱
سلام استاد وقت بخیر
خواستم بدونم کامند
php://stdin
کارش چیه؟
$f = fopen('php://stdin', 'r');

while ($line = fgets($f)) {
echo $line;
}

fclose($f);
پاسخ: 
stdin مخفف Standard Input است و برای مواقعی که از PHP در حالت Command Line مانند برنامه نویسی Shell در سرورهای لینوکس (بر پایه Unix) استفاده می کنیم برای خواندن ورودی ها کاربرد دارد، به فرض نمونه کد بالا یک خط از ورودی PHP را (در حلقه while) می خواند و در خروجی چاپ می کند.
نویسنده: mahdi
۱۶:۵۷ ۱۳۹۹/۱۰/۱۶
سلام استاد عزیز ، بعد از آموزس php با لاراول کار کنیم بهتره ؟
پاسخ: 
استفاده از فریم ورک ها شرایط خاص خودش را دارد، به فرض اگر قرار است برنامه های مختصر با PHP بنویسیم کاربرد فریم ورک خیلی توجیه ندارد اما اگر قرار است در بازار کار یا در پروژه های بزرگ تیم محور فعال باشیم تسلط بر رایج ترین فریم ورک ها (از جمله لاراول) می تواند اهمیت داشته باشد، همچنین استفاده از فریم ورک ها در بحث زمان صرفه جویی می کند (البته مدت زمان یادگیری هر فریم ورک از این مقوله جدا است)، به شخصه PHP خالص را در کنار یادگیری مباحثی مثل معماری MVC برای درک عمیق مباحث وب مناسب تر می بینم اما اگر هدفتان بیشتر بازار محور است و زمان اهمیت زیادی دارد لاراول می تواند گزینه ی خیلی خوبی برای سمت سرور باشد، در کل همه اینها بر محور PHP است منتها انتخاب مسیر بسته به اهداف و کمی علایق خودمان دارد.
نویسنده: mahdi
۰۰:۰۸ ۱۳۹۹/۱۰/۱۹
سلام استاد عزیز ، پس بنظرتون بجای وقت گذاشتن برای یادگیری لاراول و وردپرس ، وقت بزارم که عمیق تر php و ساختار mvc رو درک کنم بهتره ؟ الان واقعا نمیدونم چکار کنم ممنون میشم راهنماییم کنی
پاسخ: 
گفتیم اگر ورود سریعتر به بازار و کسب درآمد یا انجام کارهای تیم محور و جذب در شرکت ها مد نظر باشد پس از آشنایی با مباحث مقدماتی PHP می توانید از فریم ورک ها مثل لاراول، CMS ها مثل وردپرس، موتورهای قالب مثل Smarty و... برای پروژه هایی که قرار است انجام دهید استفاده کنید چون در بحث زمان صرفه جویی می شود و خیلی از کاربران به افزونه ها و خدمات پشتیبانی در این زمینه ها نیازمندند (بازار کار خوب)، اما اگر می خواهید PHP را برای اهداف بلندمدت بعدی یا به طور کلی بیاموزید یا عمدتا پروژه های کوچک انجام می دهید (به فرض ساخت ربات تلگرام، یا کدنویسی سمت سرور یک اپلیکیشن موبایل و...) در این موارد صرف PHP به شرط داشتن درک صحیح از مباحثی مانند سشن، کوکی، حفظ امنیت در کار با دیتابیس، نحوه کار با فایل ها، شی گرائی و آشنایی با معماری MVC و عناوینی از این دست راه مناسبتری خواهد بود، در مجموع هیچ محدودیت و الزامی نیست، اینها همه مباحث مرتبط با هم هستند و می توانید تجربه شخصی خودتان را داشته باشید، نکته دیگر اینکه خیلی از ابزارها حین کار کاربرد دارند و نیازی نیست از قبل خود را درگیر آنها کنیم همین که یک آشنایی مختصر و دورنمایی داشته باشیم کافی است، اگر کسب درآمد هدف مهمتر است خیلی درگیر مباحث تئوری نشوید هر جا نیاز بود مبحث مربوطه را مطالعه کنید.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- موارد غیرمرتبط با مباحث آموزش ها را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ مختصر داده خواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- از درج عناوین تبلیغاتی در فیلدها خودداری کنید، در صورتی که یادداشت تبلیغاتی تشخیص داده شود حذف خواهد شد.
- تمام یادداشت ها بررسی و زمانی جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد خودداری کنید.





8 × 5
 refresh

آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
form کوثر رحیمی
در:
سلام ا ز راهنماییتون ممنونم من تازه وبلاگم رو درست کردم ۱۲ سالمه هر کاری می کنم فیلم در اون قرار نمیگیره همش این خطا...
۱۳۹۹/۱۰/۲۹

form متین
در:
سلام و خسته نباشید من بخوام داده ای که از قبل موجوده رو با متد پست به یک فایل ارسال کنم چجور میشه؟ یعنی...
۱۳۹۹/۱۰/۲۷

form روشنا
در:
سلام ما یه وبلاگ گروهی داریم مختص املاک فایل های جدید و حتی قالب جدید اصلا اعمال نمیشه . حتی راهنمایی که کرده...
۱۳۹۹/۱۰/۲۷

form علی
در:
من در یک سایت سازی سایت ساختم یه بخش داره به نام اسکریپت دلخواه می خوام یه اسکریپتی بذارم که مثلا یه موسیقی وقتی کاربر...
۱۳۹۹/۱۰/۲۷

form امیرحسین
در:
بله استاد خیلی ممنون، نمیدونستم خودش Optimize رو انجام میده در کل من بعد از ایندکس گذاری ها همیشه سعی کردم جوری که با...
۱۳۹۹/۱۰/۲۶

form امیرحسین
در:
ُسلام وقت بخیر این کووری هم چون اول قسمت WHERE انجام میشه بعد قسمت ON پس این کووری هم با حالت کووری قبلی برابره
۱۳۹۹/۱۰/۲۶

form امیرحسین
در:
سلام استاد وقت بخیر ممنون از پاسخ گویی های قبلی یه سوال دیگه داشتم: این هم هیچ مشکلی نداره و کار میکنه، ایا...
۱۳۹۹/۱۰/۲۵

form محمد بیدل بازه
در:
سلام خسته نباشید ببخشید من توی یک قسمت سایتم تصویری دارم و میخوام سمت راست اون تصویر متن بنویسم ولی نمیشه تا متن رو...
۱۳۹۹/۱۰/۲۵

form سلام
در:
و اینکه یه تگ خوب برای فونت معرفی کنید و یه تگ دیگه که متن رو (تیتر مطلب (تست)) در ادامش بنویسه نه اینکه...
۱۳۹۹/۱۰/۲۴

form سلام
در:
سلام وبسایتم را نگاه کنید از چه تگی استفاده کنم تا فاصله بین تیتر مطلب جدید را کاهش دهم؟ (از خطی به خط...
۱۳۹۹/۱۰/۲۴

form وطن
در:
سلام. خسته نباشید. خیلی گشتم درباره یک خطا یا ایراد فنی که چند روز هست در سایت نوشته شده با پی اچ پی (اسکریپت اولوشن)...
۱۳۹۹/۱۰/۲۴

form حورارمی
در:
سلام. من هنوز نمیدونم تو تنظیمات باید کجا رو بگردم تا قالب وبلاگم رو با عکس مورد علاقه ام تغییر بدم. یا نمیتونم...
۱۳۹۹/۱۰/۲۳

form راشد
در:
این روش خیلی طولانیه در فروشگاه من یک برنامه گرفتم که یه عکس توش اپلود کن بهت یک لینک میده در ظرف چند ثانیه و...
۱۳۹۹/۱۰/۲۱

form باسلام
در:
باسلام خدمت شما عزیز زحمت کش، من مطلب را تا آخر مطالعه کردم. من وبلاگم بازدیدای زیادی داره چون تمام مطالبش رو خودم مینویسم و...
۱۳۹۹/۱۰/۲۱

form محمود
در:
سلام و عرض ادب من در سایتم یک قسمت تب ایجاد کردم، متن ها را که در تب می نویسم پاراگراف بندی نمی شوند....
۱۳۹۹/۱۰/۲۱
form علی آقابیگی
در:
سلام خسته نباشید ببخشید من می خواستم کد جدید در وبلاگم بزارم بعد اشتباهی رفتم در قسمت ویرایش کدها و بعد بیشتر کدها را پاک...
۱۳۹۹/۱۰/۲۰
form محمد
در:
سلام. من میخوام با جاوا اسکریپت یک کدی بنویسم که وقتی کاربر روی یک دکمه ‏ای کلیک کرد، یک کد تصادفی برای شمارش ارسال...
۱۳۹۹/۱۰/۲۰
form پوریا
در:
سلام خسته نباشید، ممنونم بابت توضیحات خوبتون، یه مشکلی داشتم میخواستم ببینم امکانش هست راهنمایی کنید؟ فرض کنید یه اینطور متنی داریم: ...
۱۳۹۹/۱۰/۱۹
form seyedsobhanmansouri
در:
سلام خسته نباشید من سایتمو طراحی کردم اما به این مشکلات بر میخورم اول اینکه هدر سایتم نمایش داده نمیشه اصلا و بعد...
۱۳۹۹/۱۰/۱۹
form رضا
در:
سلام. ممنون بابت مطالب مفیدتون. این نوع جستجو به سئو سایت لطمه نمیزنه؟؟؟ چون در این مدل جستجو، مقدار impression میره بالا ولی...
۱۳۹۹/۱۰/۱۹
form mahdi
در:
سلام استاد عزیز ، پس بنظرتون بجای وقت گذاشتن برای یادگیری لاراول و وردپرس ، وقت بزارم که عمیق تر php و ساختار mvc...
۱۳۹۹/۱۰/۱۹
form علی
در:
سلام و ممنون بابت وبسایت عالیتون داخل بعضی سایت ها دیدید مثلا یه متنی شروع به تایپ شدن می کنه و وقتی کامل شد...
۱۳۹۹/۱۰/۱۸
form محمد
در:
سلام خدمت شما دوست عزیز سوالم این بود میخاستم چندتا مثال از این تابع و چند تابع دیگه از خودتون رو برام مثال بزنید...
۱۳۹۹/۱۰/۱۸
form محمود رنجبر
در:
سلام برادر مشکل من تو همین سایتی هست که فرستادم وقتی گزینه خانه رو کلیک میکنم و بعد دکمه بک گوشی رو میزنم بالای صفحه...
۱۳۹۹/۱۰/۱۷
form mahdi
در:
سلام استاد عزیز ، بعد از آموزس php با لاراول کار کنیم بهتره ؟
۱۳۹۹/۱۰/۱۶
form رضا
در:
آدرس رو براتون گذاشتم دامنه قبلا روی یه وبلاگ میهن بلاگ بود چند ماه میشه که از میهن بلاگ خداحافظی کردم ولی هنوز که هنوزه...
۱۳۹۹/۱۰/۱۴
form نیلو
در:
سلام... ببخشید بعد طراحی قالب قالب شیشه ایم هست یا نه؟؟؟
۱۳۹۹/۱۰/۱۳
form مجتهدزاده
در:
سلام من یه فرمی طراحی کردم که توش قراره تعداد زیاد (حدود 10 الی 50) فیلد رو تو دیتابیس اینسرت کنم. آیا باید...
۱۳۹۹/۱۰/۰۸
form مجتهدزاده
در:
سلام لطفا راهنمایی بفرمایید که چه زمانی قبل از متغیر @ استفاده می شه و کاربردش چیه؟ با تشکر
۱۳۹۹/۱۰/۰۶
form ali
در:
سلام چجوری میشه با php بازی هوب رو طراحی کرد
۱۳۹۹/۱۰/۰۶
form رضا
در:
سلام ممنون از سایت خوبتون ایکون سایتم رو توی دسکتاپ درست نشون میده ولی تو گوشی مشکل داره طبق اموزش شما هم انجام دادم...
۱۳۹۹/۱۰/۰۶
form فرانک دستان
در:
سلام من خیلی دوست دارم روی وبلاگم کد اهنگ بزارم ولی هیچ کدوم نمی یاد بهم گفتن از این کدها دیگه پشتیبانی نمی شه شما...
۱۳۹۹/۱۰/۰۵
form مصطفی
در:
سلام. عملگر @ چه زمانی قبل از یک متغییر میاد؟
۱۳۹۹/۱۰/۰۵
form سما
در:
سلام من وقتی میزنم روی مشاهده وبلاگ صفحه فیلتر برام میاد و نمیتونم وبلاگمو ببینم
۱۳۹۹/۱۰/۰۵
form مجتبی
در:
سلام من وبلاگ بلاگفا دارم کدها و جاوا استیکرها رو میزارم تو قسمتشون ولی همه ی کدها رو یکطرف وبلاگ نشون میده چطوری سمت...
۱۳۹۹/۱۰/۰۵
form matin asadi
در:
سلام ممنون بابت سایت خوبتو من یه مشکلی دارم می خواستم کدی برای این مثال زیر بنویسم ولی بلد نیستم ممنون میشم کمک کنید. ...
۱۳۹۹/۱۰/۰۲
form sahar1999
در:
سلام وقت بخیر چطور میتونم در برنامه نویسی سی شارپ هنگام ایجاد پایگاه داده ی MySql نام پایگاه داده رو از txetbox دریافت کنم؟
۱۳۹۹/۱۰/۰۱
  در انتظار بررسی: ۰
 پاسخگویی به سوالات ممکن است تا 24 ساعت زمان ببرد.