سؤال

سأكون ممتنا بعض المساعدة هنا:

ما أريد القيام به:

إزالة & inductionperpage = 10 من:

http: //localhost/thi/search/filter.html؟ اكتب = المميز & الصفحة = 2 & industressperpage = 10

وإنشاء رابط منه:

http: //localhost/thi/search/filter.html؟ اكتب = المميز & الصفحة = 2 & industerperpage = 15

إليك ما وصلت إليه حتى الآن:

<a href="<?php echo url::site(url::current()) . http_build_query($_GET) // don't know what follows ?>"

وظائف الإطار أنا أستخدمها هي:

عنوان URL :: الحالي () = إرجاع عنوان URL الحالي في تنسيق وحدة التحكم / الإجراء

عنوان URL :: الموقع () = إرجاع عنوان URL المطلق IE http: // localhost / الموقع / تحكم / العمل

لذلك لا بد لي من إزالة "& indittperpage" من السلسلة الناتجة في وظيفة http_build_query

ولكن أواجه مشكلة في ترميزات الأحرف ومثل هذه! الرجاء المساعدة!

إذن إليك مشكلة ترميز الأحرف:

$needle = '&itemsperpage';

        $querystring = http_build_query($_GET) . '<br/>';

        // echo $querystring . '<br/>';

        $pos = strpos($querystring, $needle);

        $remove = substr($querystring, ((int)$pos));

        echo substr(str_replace($remove, '', $querystring), 1); // returns ';'

لا أستطيع إزالة السلسلة "& inditesperpage" من نتيجة http_build_query والتي هي: 'type = featured & page = 2 & inditesperpage = 10' ووظائف مثل نواتج strstr

هل كانت مفيدة؟

المحلول

أود أن أفعل هذا:

$array = $_GET;
$array['itemsperpage'] = 15;

ثم استخدم التعليمات البرمجية الخاصة بك فقط، ولكن مع المتغير الجديد (و ?):

<a href="<?php echo url::site(url::current()) . '?' . http_build_query($array)">

نصائح أخرى

ال httpquerystring. تحتوي الطبقة على العديد من الطرق للحصول على سلاسل الاستعلام وتعديلها وتعديلها و "ترجمة" charsets بهم.

يمكنك تحقيق التأثير الذي تبحث عنه عن طريق إزالة itemsperpage عنصر من $_GET صفيف قبل بناء سلسلة الاستعلام.

unset($_GET['itemsperpage']);

ثم استخدم الكود الذي كتبته بالفعل:

<a href="<?php echo url::site(url::current()) . http_build_query($_GET); ?>">

تحرير: أنا أساء قراءة مشاركتك. اعتقدت أنك تريد فقط إزالة زوج الحقل / القيمة من طلب الحصول على طلب. كل ما عليك فعله هو الكتابة فوق القيمة مع القيمة التي تريدها:

$_GET['itemsperpage'] = 15;

ثم استخدم الرمز الذي كتبته بالفعل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top