2013-05-06 51 views
0

我有一个示例代码:如何删除img src标签中的变量?

$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480'; 

我使用此代码删除变量(maxwidth)

echo preg_replace('/(\?)$/', '', $filename) 

=>如何删除变量(maxwidth),如何解决呢?

+1

如何使用URL解析器? http://stackoverflow.com/q/12687790/139010 – 2013-05-06 03:35:16

回答

0

你可以试试这个

$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480'; 
echo preg_replace("/\?[a-z]+=\d+/", '', $filename); 

DEMO.

1

,如果你想摆脱查询的,只是说:

$filename = 'http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480'; 
$parts = explode("?",$filename); 
$filename = $parts[0]; 
0

你可以这样做:

$filename = "http://thebox.vn/Uploaded/catmy/2013_04_23/couple_t2.jpg?maxwidth=480"; 
$filename = array_shift(explode('?', $filename)); 
echo $filename; 
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;