-
المساهمات
5583 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
68
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد عاطف17
-
توجد في C# دالة تسمى ToLower وهي التي تقوم بتحويل جميع حروف السلسلة النصية إلى حروف صغيرة واذا أردت العكس يمكنك إستخدام الدالة ToUpper . وهذا مثال بسيط يوضح كيفية إستخدام ToLower : string originalText = "HELLO WORLD"; Console.WriteLine($"Original Text: {originalText}"); // تحويل النص إلى حروف صغيرة string lowerCaseText = originalText.ToLower(); Console.WriteLine($"Lowercase Text: {lowerCaseText}");
- 4 اجابة
-
- 1
-
-
مرحبا يوسف. نعتذر لك عن التأخير في الرد حيث حاليا يوجد العديد من الطلاب الآخرون الذين يأدون الإمتحان أيضا ولذلك من الممكن أن يتأخر الرد قليلا لذلك من فضلك يرجى الإنتظار قليلا حتى يتم الرد عليك. إذا كنت قد أنهيت الإختبار بالفعل فلا تقلق يمكنك الإنتظار حتى يتم الرد عليك أو يبدوا أنه يتم تقيم مشروعك حاليا . أما إذا كان سؤالك بخصوص المشروع فسيتم الرد عليك قريبا بإذن الله. بالتوفيق لك.
- 1 جواب
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. أفضل طرق حفظ البيانات سواء بيانات كبيرة أو صغيرة هي قواعد البيانات لذلك سيتوجب عليك تعلم أولا قواعد البيانات . إذا كان المشروع لديك بسيطا وتريد شئ سريع يمكنك حفظ البيانات في ملفات excel حيث تقوم بحفظ البيانات في جدول في ملف execl و إستعراض البيانات التي بداخله . ولكن عيب هذه الطريقة هو وصول أي شخص لهذا الملف ومن الممكن أن تحدث به مشاكل أو يتم حذفه أو تعديله بشكل خاطئ و أيضا لا يوفر excel ميزة البحث أو ترشيح البيانات حيث سيتوجب عليك عمل كل شئ بنفسك في الكود. ولذلك أفضل طريقة كما وضحت لها هي إستخدام قواعد البيانات والتي ستساعدك في حفظ بياناتك بشكل أمن وعدم الوصول إليها إلا سوى الأشخاص المصرح لهم وتوفر لك طرق سهلة وسريعه لحفظ و قراءة وفلترة البيانات دون الحاجة لعمل المنطق بها في الكود بل كل ما سيتوجب عليك هو إستعمال أوامر قاعدة البيانات التي توفرها وأشهرها لغة إستعلام SQL وقاعدة البيانات هي من ستقوم بكل العمل لك . يمكنك قراءة المقالات التالية لمعرفة أنواع قواعد البيانات و الفرق بينها وكيفية إستخدامها ومعلومات أكثر حولها :
- 3 اجابة
-
- 1
-
-
نعم بالطبع معظم وظائف لارافيل لا تتطلب إصدار معين وستجد بالطبع وظائف بإصدار 9 من لارافيل . ويوجد حتي الآن بعض المشاريع والوظائف التي تعتمد على إصدار 5 من لارافيل حيث ستجد أن تلك المشاريع قديمة جدا و إذا تم تحديث إصدار لارافيل لها ستحدث بها مشاكل كثيرة ولن تعمل أو ستكون تكلفة التحديث كبيرة لذلك لا يزالون يعملون على إصدار 5 . وإذا قمت بالبحث عن وظائف العمل الحر والتي تتطلب إنشاء مشروع من البداية فهنا أنت لك الحرية الكاملة في إختيار الإصدار الذي تعمل به ويمكنك إستخدام الإصدار 9 أو 10 أو حتى 11 كما تريد كل ما يهم العميل هو أن المشروع يعمل دون أي مشاكل وكما هو متوقع . أما وظائف الشركات فهنا من الممكن أن يطلبو إصدار معين ولكن ستجد قليل من يريدون أحدث إصدار حيث كما أخبرتك إذا كانت المشاريع كبيرة فتكلفة التحديث من إصدار لإصدار ستكون كبيرة لذلك يعملون بالإصدار الحالي للمشروع ولهذا ستجد معظم الشركات تطلب إصدار 8 أو 9 . والتغيرات بين إصدار 8 و 9 و 10 ليست بالكبيرة ولكن حدثت تعديلات كبيرة وتغير في بنية المشروع في إصدار 11 لذلك ستجد إختلاف كبير في هذا الإصدار . وبالفعل كما قلت فإنه يتوجب عليك دائما التطوير فإن التحديثات لن تتوقف أبدا ولهذا يجب عليك تعلم قراءة التوثيق الرسمي لمعرفة التغيرات التي حدثت ومتابعة هذه التحديثات. كما في الجدول السابق لتاريخ إصدار التحديثات من التوثيق الرسمي ستجد أنه سنويا يتم صدور إصدار جديد من لارافيل و بعض تلك التحديثات لا يوجد بها أي تغيرات كبيرة سوى تحديثات الأمان و طرق تنفيذ الوظائف ولكن معظم طرق كتابة الأكواد كما هي لذلك ستجد صعوبة في تحديث محتوى الدورة كاملا حيث سيتوجب دائما تغير المحتوى سنويا وهذا ليس بالشئ البسيط . وبمجرد تعلمك إصدار ستستطيع العمل على الإصدارات الحديثة لهذا كما أخبرتك سيتوجب عليك تعلم قراءة التحديثات في الإصدارات بنفسك فليس من الجيد حين ينزل أي إصدار جديد تشاهد دورة جديدة لهذا الإصدار فهذا ليس حلا حيث ستظل دائما هكذا تشاهد دروس دون تعلم ولكن الأفضل هو تعلم إصدار معين وانت بعد ذلك تتابع التحديثات من التوثيق الرسمي. وأخيرا لا تقلق من تعلمك لأى إصدار ستجد وظائف دائما حيث لارافيل من أطر العمل الشهيرة والمنتشرة وستجد وظائف لها بإذن الله.
-
الكود يعمل بشكل صحيح . لاحظ أن العنصر الذي له ال id يساوي successMessage هو نفسه ال modal وستجد أن ال overlay وهو الجزء خارج ال modal هو ال modal نفسه ولو قمت بعمل فحص للعناصر ستجد أن المكان الذ تضغطه خارج الجزء الأبيض هو ال modal الذي له id successMessage لهذا يتم الإغلاق عند الضغط خارج المحتوى. ولكن عند الضغط على المحتوى لن يحدث أي شئ لأن ال target حينها سيكون هو العنصر modal-content. وهذا هو الذي تريده فحين يتم الضغط خارج المحتوى يجب إغلاق ال modal ولا يحدث شئ عند الضغط بداخله. لذلك يرجى توضيح ما الذي تريد فعله مع إرفاق الملفات لمساعدتك بشكل أفضل.
- 6 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته . بعيدا عن typescript فإن تعلم ال OOP من الأمور المهمة التي لا غنى عنها لأى مبرمج حيث إن OOP من تسهل في تنظيم المشاريع الكبيرة و سهولة الصيانة وسهولة فهم الأكواد. ومن المؤكد أنك ستتعامل مع مشاريع أو حتي مكتبات وأطر عمل التي تم بنائها بإستخدام نمط OOP ولذلك إذا لم يكن لديك علم حول OOP فستجد صعوبة في إستخدامها أو التعامل مع تلك المكتبات وأطر العمل . أما بخصوص سؤالك فإن في TypeScript، لا يتطلب الأمر بالضرورة تعلم البرمجة الكائنية (OOP) لتتمكن من استخدام اللغة بشكل فعال. TypeScript هي لغة توفر أنواعًا ثابتة (static types) وتحسينات على JavaScript، مما يتيح لك كتابة رمز أكثر قوة ومرونة. مع ذلك، هناك بعض النقاط التي قد تجعل تعلم البرمجة الكائنية مفيدًا عند العمل مع TypeScript: الأنماط البرمجية: TypeScript تدعم البرمجة الكائنية، مما يعني أنه يمكنك استخدام الفئات (classes) والميراث (inheritance) وواجهات (interfaces) وغيرها من مفاهيم OOP. إذا كنت تتعامل مع مشاريع كبيرة أو فرق تطوير، فإن فهم OOP يمكن أن يساعد في تنظيم الكود وتحسين القابلية للصيانة. تنظيم الكود: البرمجة الكائنية يمكن أن تساعد في تنظيم الكود وتبسيط التعامل مع الكائنات والمكونات المختلفة، مما قد يكون مفيدًا في المشاريع الكبيرة والمعقدة. الأنماط الشائعة: بعض المكتبات والأطر (frameworks) في TypeScript تعتمد على أنماط OOP. على سبيل المثال، Angular يستخدم الكثير من مفاهيم OOP. لكن، يمكنك استخدام TypeScript دون الغوص بعمق في OOP . ولكن نصيحتي لك هي بدأ تعلم OOP أولا . ويمكنك قراءة المقال التالي حول ال OOP :
- 2 اجابة
-
- 1
-
-
في دورة تطوير التطبيقات باستخدام لغة Python لا يتم شرح تطبقات الهاتف في هذه الدورة بل يتم شرحها في دورة تطوير التطبيقات باستخدام JavaScript. و لكن بالفعل سيتم شرح طرق عمل تطبيقات ومواقع الويب بإستخدام إطار عمل django و flask والعديد من الأمور . وهذا ما سوف تتعلمه في الدور : الأسس البرمجية السليمة عبر لغة Python التعامل مع مختلف صيغ الملفات مثل إكسل Excel وورد Word وخدمات المستندات السحابية استخراج البيانات من صفحات الويب Web Scraping وتحليلها أساسيات التعامل مع قواعد البيانات عبر بايثون، والتعامل مع البريد الإلكتروني لإرسال الرسائل أساسيات إطار العمل جانغو Django بناء تطبيق إدارة المهام باستخدام إطار العمل جانغو Django تطوير متجر إلكتروني متكامل باستخدام إطار العمل جانغو Django وربطه مع وسائل الدفع باي بال PayPal وسترايب Stripe أساسيات إطار العمل فلاسك Flask، وبناء مدونة بسيطة تطوير واجهة برمجية API اعتمادًا على نمط RESTful لمعالجة الصور. وما سبق هو ما تم ذكره في صفحة الدورة ويمكنك مراجعتها من خلال الرابط التالي :
-
كما أخبرتك هذه المشكلة تحدث لكثير من المستخدمين ولم تقم جوجل بحلها إلى الآن لذلك يرجى محاولة إستخدام رقم أخر غير مرتبط بحساب جوجل أو لم يتم إضافته حديثا . أو يمكنك المحاولة بنفس الرقم بعد 48 ساعه وإذا لم تحل المشكلة فيجب إستخدام رقم أخر
-
يجب إدخال رقم هاتف صحيح حيث يجب إختيار الدولة الصحيحة وكتابة رقم هاتف صحيح لهذه الدولة. وإذا ظهر لك خطأ جديد وهو "لا يمكن إضافة هذا الرقم يمكنك المحاولة لاحقا أو إضافة رقم أخر" فهذه المشكلة تتكرر كثيرا ولم تحلها شركة جوجل بعد . فإذا كان رقم الهاتف مرتبط حديثا بحساب أخر فلن يتم إرسال رساله له وستظهر لك رسالة الخطأ السابقة. لذلك يرجي التأكد من إدخال رقم هاتف غير مرتبط بأى حساب أخر .
-
ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤوالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
-
أقصد في سطر المتغيرات وليس العمود حيث أن إسم العمود ثابت وما يتغير هو فقط أسماء الصور . لذلك يجب تغير ال values
-
نعم في ال value . إذا كنت تضع إسم الصورة القديم يجب وضع الجديد بدلا منه
- 10 اجابة
-
- 1
-
-
نعم ستظهر مختلفة لذلك يجب وضع $new_name في قاعدة البيانات حيث يحوي $new_name علي إسم الصورة الجديد. وهذا هو المتغير $new_name لذلك يجب وضعه في السطر الذي يتم فيه إدخال البيانات في قاعدة البيانات
- 10 اجابة
-
- 1
-
-
يوجد خطأ بسيط فقد تم نسيان وضع علامة النقطة قبل ال extension الخاصة بالملف . ليصبح الكود كالتالي : if ($_SERVER["REQUEST_METHOD"] == "POST") { $ty = htmlspecialchars($_POST["ty"], ENT_QUOTES, 'UTF-8'); $targetDir = "GOOD/"; $uploadOk = 1; if ($ty == "نعم" && isset($_FILES["fil"]) && $_FILES["fil"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fil"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fil"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fil"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . "." . $ext; if (move_uploaded_file($_FILES["fil"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fil = basename($_FILES["fil"]["name"]); } } } elseif ($ty == "لا" && isset($_FILES["fil"]) && $_FILES["fil"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fil"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fil"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fil"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . "." . $ext; if (move_uploaded_file($_FILES["fil"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fil = basename($_FILES["fil"]["name"]); } } } } if ($_SERVER["REQUEST_METHOD"] == "POST") { $y = htmlspecialchars($_POST["y"], ENT_QUOTES, 'UTF-8'); $targetDir = "GOOD/"; $uploadOk = 1; if ($y == "انثى" && isset($_FILES["fi"]) && $_FILES["fi"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fi"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fi"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fi"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . "." . $ext; if (move_uploaded_file($_FILES["fi"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fi = basename($_FILES["fi"]["name"]); } } } elseif ($y == "ذكر" && isset($_FILES["fi"]) && $_FILES["fi"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fi"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fi"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fi"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . "." . $ext; if (move_uploaded_file($_FILES["fi"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fi = basename($_FILES["fi"]["name"]); } } } } حيث كان من المفترض علي المتغير $ext أن يحتوي على رمز النقطه ولكن يبدوا أنه لم يتم وضعها . وهذا هو السطر الذي تم تعديله. $new_name = time() . uniqid(rand()) . "." . $ext;
- 10 اجابة
-
- 1
-
-
يمكنك إستخدام الكود التالي : if ($_SERVER["REQUEST_METHOD"] == "POST") { $ty = htmlspecialchars($_POST["ty"], ENT_QUOTES, 'UTF-8'); $targetDir = "GOOD/"; $uploadOk = 1; if ($ty == "نعم" && isset($_FILES["fil"]) && $_FILES["fil"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fil"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fil"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fil"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . $ext; if (move_uploaded_file($_FILES["file3"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fil = basename($_FILES["fil"]["name"]); } } } elseif ($ty == "لا" && isset($_FILES["fil"]) && $_FILES["fil"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fil"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fil"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fil"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . $ext; if (move_uploaded_file($_FILES["fil"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fil = basename($_FILES["fil"]["name"]); } } } } وإذا كنت تضع إسم الصورة في قاعدة البيانات فيجب أخذ المتغير $new_name حيث هو إسم الصورة الجديد الذي يجب وضعه في قاعدة البيانات.
- 8 اجابة
-
- 1
-
-
نعم يجب أن يكون تلقائي مثل الكود الذي أرفقته لك في البداية وليس المتقدم هو من يغير الإسم حيث لن يعرف المتقدم ما هي الملفات التي لديك علي السيرفر . فلنفرض مثلا أن المجلد الذي تقوم برفع الصور فيه يسمي images . وقام متقدم أول برفع صورة تسمي ahmed.png و بعد ذلك جاء متقدم أخر وقام برفع صورة تسمى أيضا ahmed.png إذا لم يتم تغير إسم الصورة من خلال الكود سيتم حذف الصورة القديمة الخاصة بالمتقدم الأول ووضع مكانها صورة المتقدم الثاني . ولكن عند تغير الإسم ستكون صورة المتقدم الأول مثل 66bba0ba904df.png حيث تم تغير الإسم تلقائيا بإسم فريد وبهذا كل متقدم يقوم برفع الصور سيتم تغير إسمها تلقائيا.
- 8 اجابة
-
- 1
-
-
لن يتم حذها طالما لم يتم رفع صورة لها نفس الإسم . لذلك يرجى التأكد من تغير إسم أى صورة تم رفعها حتى لا تحدث تلك المشكلة . ولا يمكن حل تلك المشكلة حيث هذا هو طريقة عمل نظام التشغيل . لا يمكن أن يوجد ملفين في نفس المكان ولهما نفس الإسم . ولذلك إذا تأكدت من تغير إسم الصور إلى إسم فريد فلن تحدث تلك المشكلة لديك.
- 8 اجابة
-
- 1
-
-
الأمر بسيط كل ما عليك هو تغير إسم الصورة إلي إسم فريد قبل رفعها حيث حين يتم رفع أي ملفات وتوجد ملفات بنفس الإسم يتم الكتابة علي الملفات القديمة أي يتم مسح الملفات القديمة ووضع الملف الجديد بنفس الإسم . ويمكنك إستخدام الدالة uniqid لتحقيق ذلك . وهذا كود بسيط لتوضيح الأمور: $imagePath = '/image/'; $new_name=time().uniqid(rand()); $filename = $_FILES["img"]["tmp_name"]; $ext = end((explode(".", $$_FILES["file"]["name"]))); $destFile = $imagePath . $new_name . $ext; move_uploaded_file($filename, $destFile); هنا قمنا بتغير إسم الصورة إلي إسم فريد مع الإحتفاظ بالإمتداد الخاص بها .
- 8 اجابة
-
- 1
-
-
هذا هو الكود : $sql=mysqli_query($con,"select * from in_1 where id = '$search_file' or name='$search_file'); لا يمكنني مساعدتك دون معرفة كيف تقوم بتسجيل الدخول و كيف تقوم بحفظ بيانات المستخدم الحالي . يمكنك إرسال دالة تسجيل الدخول لديك
- 7 اجابة
-
- 1
-
-
لم أفهم ماذا تقصد . هل تقصد عند محاولة الأدمن الحذف فيقوم بالحذف وبعد ذلك يذهب إلي صفحة الجدول . و أما المستخدم حين يحاول الحذف يقوم بالحذف ومن ثم يذهب إلي صفحة ال form ؟ إذا كان كذلك فنعم كودك صحيح كل ما عليك هو كتابة شرط و بحسب الشرط تقوم بالتوجيه فإذا وجدت أن المستخدم الحالي هو أدمن تقوم بالتوجيه إلي صفحة الجدول و إلا فقم التحويل إلي ال form
- 7 اجابة
-
- 1
-
-
نعم بالطبع يمكنك إستخدامه في أي مكان ويمكنك إستبدال الجدول الذي تقوم بالحذف منه . وايضا سطر ال header . إن سطر ال header هو فقط مسؤول عن إعادة توجيهك بعد الحذف فنعم يمكنك إعادة التوجيه لأي صفحة تريدها.
- 7 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. نعتذر على ذلك في حال كان لديك إضافة adblock فغالبًا ذلك سبب المشكلة، استخدم uBlock Origin فتلك الإضافة لا تسبب مشكلة. ثم يجب عليك إعادة تحديث الصفحة بالضغط على CTRL + F5 من أجل حذف الملفات المؤقتة. إن استمرت المشكلة فيرجى تجربة تحميل وتثبيت Cloudflare WARP فهو بمثابة طبقة وسيطة مثل الـ VPN من خلال شبكة Cloudflare وبعد التثبيت قم بتشغيل التطبيق بالضغط على زر الإتصال مباشرًة وتفقد الدروس مرة أخرى. https://install.appcenter.ms/orgs/cloudflare/apps/1.1.1.1-windows-1/distribution_groups/release وذلك لتفقد هل يوجد مشكلة بالإنترنت أم لا.
- 2 اجابة
-
- 1
-
-
إذا كانت أكواد الموقع لديك علي الجهاز أو كان يمكنك تحميلها علي الجهاز فيمكنك فتح مجلد الموقع بداخل ال IDE الذي تستخدمه وإذا لم تكن تستخدم IDE فيفضل إستخدام vc code فهو IDE متطور وتوجد به العديد من الإضافات التي تساعدك في تطوير وكتابة أكواد موقعك . بعد فتح ال IDE يمكنك البحث في جميع ملفات المجلد عن طريق الضغط عليى CTRL + SHIFT + F وبعد ذلك كتابة الرابط الذي تبحث عنه أو تحديد ال class الذي يحتويه العنصر و البحث به وستجد جميع الملفات الذي يوجد به هذا الرابط. إذا لم تكن أكواد الموقع متاحة علي جهازك يمكنك إستخدام ssh وهي خدمة توفرها الإستضافات للوصول إلي موجه الأوامر الخاص بموقعك . بعد الوصول لموجه الأوامر قم بالذهاب لمجلد public_html والذي توجد به ملفات موقعك و بعد ذلك قم بتنفيذ الأمر التالي : grep -ir "النص" * ويمكنك إستبدال النص بالكلمة التي تريد البحث عنها وستظهر لك جميع الملفات التي يوجد بها تلك الكلمة . ولكن إنتبه إذا كانت الملفات كثيرة فمن الممكن أن يأخذ هذا الأمر الكثير من الوقت في البحث. وأفضل طريقة هي تتبع الملفات حيث قم بالذهاب إلي الملف الرئيسي الذي يتم عرضه في المتصفح وقم بالبحث بداخله و قم بفتح أي ملف يتم إستخدامه من خلال include و قم بالبحث بداخله .