2011-03-31 2 views
0

를 사용하여 문자열을 제거 나는 항상 부착 된 컬러 변수해야합니다 다음과 같은 URL이 : 나는, PHP를 사용하여, 마지막에 모든 것을 제거 할 방법PHP는, "패턴"

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

을; & 색상에서 시작, 그래서 나는 왼쪽하고 다음

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

매개 변수의 순서가 다른 경우 어떻게됩니까? – Gumbo

+0

그들은 그렇지 않습니다. 링크가 거의 없습니다. 이것은 나 혼자만의 것입니다. –

답변

3

질문에 대한 문자 적 ​​대답은 :

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

그러나, 이것은 단지 특정한 경우에 좋다 - 그것을 아마도 좀 더 튼튼한 일을하는 것이 좋은 생각 일 것입니다. 예를 들어, URL을 분할하고, 키/값 쌍을 배열로 가져오고, 원하지 않는 항목을 제거하거나 원하는 항목을 제외한 모든 항목을 제거하고 URL을 다시 작성합니다.

+0

답장을 보내 주셔서 감사합니다, 완벽한 직장! –

+0

바늘이 들어 있지 않은 경우에는 어떻게해야합니까? – Gumbo

+0

@ 검보 : 나쁜 일이 일어납니다. 그러나 OP의 논평에서 이것이 쓰레기 코드라는 인상을 받았고, 그것이 사실이라면 단일 LOC에 대해 논쟁하기가 어렵습니다. – Jon

2

parse_url & parse_str의 조합을 권장합니다. http_build_url & http_build_str도 사용할 수 있지만, 이 필요합니다.

+0

그리고 Brad에게 답장을 보내 주셔서 감사합니다. 그 기능을 살펴 보겠습니다. –

+0

이 접근법은 "가장 정확한"(내 대답 인 부 끄 러운 해킹보다 낫다) 것으로 보는 것이지만 큰 실용적인 결함이 있습니다 : http_build_url '그리고 친구들은 기본적으로 내장되어 있지 않습니다. – Jon

+0

@ 존 : 사실. PECL lib의 일부이지만 가장 "방탄"솔루션입니다. –

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

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

$thePartYouWant = $url_parts[0]; 
+0

답장을 보내 주셔서 감사합니다 Dave –