我有一个示例代码:如何删除img src标签中的变量?
$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480';
我使用此代码删除变量(maxwidth)
echo preg_replace('/(\?)$/', '', $filename)
=>如何删除变量(maxwidth),如何解决呢?
我有一个示例代码:如何删除img src标签中的变量?
$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480';
我使用此代码删除变量(maxwidth)
echo preg_replace('/(\?)$/', '', $filename)
=>如何删除变量(maxwidth),如何解决呢?
你可以试试这个
$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480';
echo preg_replace("/\?[a-z]+=\d+/", '', $filename);
,如果你想摆脱查询的,只是说:
$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480';
$parts = explode("?",$filename);
$filename = $parts[0];
你可以这样做:
$filename = "http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480";
$filename = array_shift(explode('?', $filename));
echo $filename;
您当前使用的正则表达式是:如果最后一个字符是问号字符,则用空字符串替换$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;
如何使用URL解析器? http://stackoverflow.com/q/12687790/139010 – 2013-05-06 03:35:16