Замена строки при сохранении некоторого содержимого
Поэтому я пытаюсь выяснить, как я могу ввести такие данные, как
[url=value]
и превратить его в
<a href="value">
Конечно, я хочу сохранить эту ценность. Спасибо за помощь!
В конечном итоге я хочу быть в состоянии накормить любую цель и замену, в том числе [email=value]
в <a href="mailto:value">
,
Пока что у меня есть:
$before = explode($fix['before'],"value");
$after = explode($fix['after'],"value");
preg_replace('/\\'.$before[0].'(.+?)'.'\\'.$before[1].'/', $after[0].'\1'.$after[1], $post);
2 ответа
Вы можете использовать регулярные выражения. В PHP вы можете использовать preg_replace
функция. Пример регулярного выражения, которое вы могли бы использовать для этого будет /\[url=(.+)\]/
и замена будет <a href="$1">
Вы можете использовать это регулярное выражение:
\[(.*?)=([^\]]+)]
Пример регулярного выражения:
Тестовая строка:
[url=http://www.web.com/test.php?key=valuepair]
Матчи:
match[1]: "url"
match[2]: "http://www.web.com/test.php?key=valuepair"
PHP:
$teststring = '[url=http://www.web.com/test.php?key=valuepair]';
preg_match('/\[(.*?)=([^\]]+)]/', $teststring, $match);
// So you could test if $match[1] == 'url' or 'email' or etc.
switch ($match[1]) {
case "url":
$output = '<a href="'.$match[2].'">Link</a>';
break;
case "email":
$output = '<a href="mailto:'.$match[2].'">Send Email</a>';
break;
}
echo str_replace($teststring, $output, $teststring);
Выход:
<a href="http://www.web.com/test.php?key=valuepair">Link</a>