我有这样的代码:
http://domain.com/link.aspx?r=test5&id=3726&location=24&sublocation=
我想知道如何删除& sublocation =以及可能之后的任何内容并使代码看起来像这样:
http://domain.com/link.aspx?r=test5&id=3726&location=24
我需要使用preg_replace函数:
所以我需要这样的东西:
<?php
$host = $_GET['host'];
$ch = curl_init($host);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
echo preg_replace('/<link>(*.?)&sublocation=*<\/link>/', '<link> '$1' </link>', $response);
&GT;
我只需要一些帮助来修复我编写的preg_replace命令。
谢谢
答案 0 :(得分:1)
只是一个替代答案。它不使用preg_replace
,只使用substr
和strpos
。
$url = "http://domain.com/link.aspx?r=test5&id=3726&location=24&sublocation=";
$url2 = substr($url, 0, strpos($url, '&sublocation='));
echo $url2;
输出
http://domain.com/link.aspx?r=test5&id=3726&location=24
说明:
strpos($url, '&sublocation=')
将返回“&amp; sublocation =”字符串的位置。然后使用从0到该位置的substr
,将剪切原始字符串。
答案 1 :(得分:0)
将您的*
(&sublocation=*
)更改为.*
。在正则表达式中,*
表示“前面符号中的0或更多”。在您的情况下,您有=*
,这意味着“0或更多=符号”。
当您使用.*
时,它表示“0或更多任何字符(换行符除外)”,因为.
表示“任何字符(换行符除外)”*
(*除非您输入DOTALL标志(s
))