1

文字列の最後の要素を削除する必要があります。で使用rtrimしましphpたが、機能していません。

これは文字列です:

 /search/listing.html?vehicle_type=&year=&make_name=&model_name=&loc_type=3&zipcode=641004&distance=100&make_order=ASC

「&make_order=ASC」を削除する必要があります

誰でも私を助けることができますか?

4

9 に答える 9

1

make_orderクエリ文字列の最後にあるという保証はありません-またはまったく存在しません。フィールドを適切に削除するには、次のようなものを使用する必要があります。

$url = '/search/listing.html?vehicle_type=&year=&make_name=&model_name=&loc_type=3&zipcode=641004&distance=100&make_order=ASC';

// break down the URL into a path and query string
$parsed = parse_url($url);

// turn the query string into an array that we can manipulate
$qs = array();
parse_str($parsed['query'], $qs);

// remove the unwanted field
unset($qs['make_order']);

// rebuild the URL
$rebuilt = $parsed['path'];
if(!empty($qs)) {
    $rebuilt .= '?' . http_build_query($qs);
}

echo $rebuilt;
于 2013-09-27T12:07:47.647 に答える
0

&make_order=ASC常に最後にある場合は、 strstr() を使用しこれを行うことができます

$str = '/search/listing.html?vehicle_type=&year=&make_name=&model_name=&loc_type=3&zipcode=641004&distance=100&make_order=ASC';
echo strstr($str,'&make_order=ASC',true);
于 2013-09-27T12:07:18.817 に答える
0
$str = "/search/listing.html?vehicle_type=&year=&make_name=&model_name=&loc_type=3&zipcode=641004&distance=100&make_order=ASC";
echo $str . "<br>";
echo trim($str,"&make_order=ASC");
于 2013-09-27T12:05:45.877 に答える
0

URL から目的のキーを削除します。

使用する:

$s = '/search/listing.html?vehicle_type=&year=&make_name=&model_name=&loc_type=3&zipcode=641004&distance=100&make_order=ASC';
echo remove_key_from_url($url, 'make_order');

出力:

/search/listing.html?vehicle_type=&year=&make_name=&model_name=&loc_type=3&zipcode=641004&distance=100

コード:

function remove_key_from_url($url, $key) {
    if (strpos($url, '?') === false) return $url;
    list($left, $right) = explode('?', $url, 2);
    parse_str($right, $get);
    if (isset($get[$key])) unset($get[$key]);
    return $left . '?' . http_build_query($get);
}
于 2013-09-27T12:11:26.140 に答える