2011-03-31 3 views
0

У меня есть следующий URL, который всегда будет иметь переменную цвет прикрепленную:PHP, удалить строку, используя «рисунок»

http://www.example.com/?new=yes&color=red&shape=square 

Как бы я, с помощью PHP, удалите все в конце; начиная с & цвета, поэтому я остался со следующим:

http://www.example.com/?new=yes 
+0

Что делать, если порядок параметров отличается? – Gumbo

+0

Они не будут. Очень мало ссылок, это только для меня. –

ответ

3

Дословный ответ на ваш вопрос:

$url = substr($url, 0, strpos($url, '&color=')); 

Однако, это хорошо только для конкретного случая - это вероятно, будет хорошей идеей сделать что-то немного более надежным. Например, разделение URL-адреса, получение пар ключ/значение в массив, удаление тех, которые вы не хотите (или удаление всего, за исключением тех, которые вы хотите), и повторное создание URL-адреса.

+0

Спасибо, что нашли время ответить, отличная работа! –

+0

Что делать, если игла не содержится? – Gumbo

+0

@ Gumbo: Плохие вещи случаются. Но я получил впечатление от комментария OP, что это разовый код, и трудно спорить с одним LOC, если это правда. – Jon

2

Я рекомендую сочетание parse_url & parse_str. Вы также можете использовать http_build_url & http_build_str, хотя для этого требуется pecl_http.

+0

И спасибо за ответ Брэд, посмотрим на эти функции –

+0

Хотя этот подход является тем, что я считаю «самым правильным» (и лучше, чем позорный взлом - это мой ответ), он имеет большой практический недостаток: 'http_build_url 'и друзья по умолчанию не встроены. – Jon

+0

@ Jon: Действительно. Часть PECL lib, хотя и предназначена как наиболее «пуленепробиваемое» решение. –

2
$url = "http://www.example.com/?new=yes&color=red&shape=square"; 

$url_parts = explode("&", $url); 

$thePartYouWant = $url_parts[0]; 
+0

Спасибо за ответ Дэйв –

Смежные вопросы