2013-05-06 4 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 –

ответ

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; 
Смежные вопросы