我有一个示例代码:
$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480';
我使用此代码删除变量(maxwidth)
echo preg_replace('/(\?)$/', '', $filename)
=>如何删除变量(maxwidth),如何解决?
答案 0 :(得分:1)
如果你想摆脱查询,就这样做:
$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480';
$parts = explode("?",$filename);
$filename = $parts[0];
答案 1 :(得分:0)
$filename = "http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480";
$filename = array_shift(explode('?', $filename));
echo $filename;
答案 2 :(得分:0)
你可以试试这个
$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480';
echo preg_replace("/\?[a-z]+=\d+/", '', $filename);
答案 3 :(得分:0)
您当前的正则表达式说:如果最后一个字符是问号字符,请用空字符串替换$filename
的最后一个字符。
这是一个固定的正则表达式,适用于您的特定示例:/\?maxwidth=.*$/
还有许多其他表达可以在各种情况下完成工作。但是,也许最好使用PHP的parse_url()函数将URL拆分为各个部分,然后丢弃您不关心的部分并合并回字符串。例如:
$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480';
// Parse the filename into parts.
$filename_parsed = parse_url( $filename );
// Merge the parsed filename back into a string,
// discarding any irrelevant parts.
$filename_merged = $filename_parsed[ 'scheme' ] . '://' . $filename_parsed[ 'host' ] . $filename_parsed[ 'path' ];
// Prints: http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg
echo $filename_merged;