Замена строки при сохранении некоторого содержимого

Поэтому я пытаюсь выяснить, как я могу ввести такие данные, как

[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">

Вы можете использовать это регулярное выражение:

\[(.*?)=([^\]]+)]

Пример регулярного выражения:

http://regex101.com/r/nL6lH9

Тестовая строка:

[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>
Другие вопросы по тегам