اذهب إلى المحتوى

السؤال

نشر

لدي نص عبارة عن عنوان URL على النحو التالي:

$url = "https://www.example.com/search.php?q=myquery";

كيف أحصل على مصفوفة من النص السابق بالشكل التالي:

echo $result['q'];	 // myquery

كيف أقوم بهذا الأمر في PHP؟

Recommended Posts

  • 1
نشر

إن كان لديك عنوان URL مُخزن في متغير، فيمكنك تحليله وإستخراج query منه من خلال الدالة parse_url و parse_str بالشكل التالي:

<?php

$url = "https://www.example.com/search.php?q=myquery&abc=123";

// نستخرج الـ query من العنوان
$query = parse_url($url, PHP_URL_QUERY);	// q=myquery&abc=123

// نقوم بتحويل النص السابق إلى مصفوفة ترابطية key-value
$queries = array();
parse_str($query, $queries);

// يمكن إستخدام المصفوفة أو أحد المفاتيح منها بالشكل التالي
echo $queries['abc'];	// 123
echo $queries['q'];	// myquery

ملاحظة: بدءًا من الإصدار PHP 7.2 لا يُفضل استخدام الدالة parse_str()‎ بدون المعامل الثاني لها، لأنها ستقوم في هذه الحالة بتحويل المفاتيح keys إلى متغيرات (q$ و abc$) ، وقد يقوم بعض المخترقين Hackers بإستغلال هذا الأمر في صالحهم ومحاولة إختراق الموقع.

يمكنك الإطلاع على هذه المقالة لمزيد من المعلومات عن كلا الدالتين:

أو من خلال موسوعة حسوب: الدالة parse_str()‎ في PHP

  • 1
نشر

يمكن استعمال المتغير العام $_GET لقراءة أي متغيرات أو خواص يتم تمريرها في طلبات GET في أي URL. 

يمكنك مباشرة استهداف المفتاح الذي تريده من هاته المصفوفة المحضرة مسبقا دون العمل على تحصيل مصفوفة تخزن ذلك، مثال: 

echo $_GET['my_key'];	

وفي الحالة التي لديك يكون ذلك كـ:

echo $_GET['q'];	

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...