2014-02-20 3 views
-3

Так что я пытаюсь выяснить, как я могу вход, такие какЗамена строки при сохранении некоторого содержимого

[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); 
+0

Пожалуйста исследуйте это самостоятельно. SO не является местом, где можно задать вопрос «Как ..», но «Почему ..»;) – kero

+0

PHP Примечание: неопределенная переменная: $ fix in/your/question в строке 1 – Mike

ответ

1

Вы можете использовать регулярные выражения. В PHP вы можете использовать функцию preg_replace. В качестве примера регулярного выражения можно использовать для этого будет /\[url=(.+)\]/ и замена будет <a href="$1">

+0

Вам нужно будет определить, что ' . + 'как группа' (. +) 'или ссылка' $ 1' не будет работать – kero

+0

Да, я добрался так далеко. В конечном итоге я хочу использовать переменную, содержащую '[url = value]' или '[email = value]' и т. Д., И передать ее в скрипт и обработать. До сих пор у меня есть '$ before = explode ($ fix ['before']," value "); $ after = explode ($ fix ['after'], "value"); \t \t \t preg_replace ('/\\'.$ до [0].' (. +?) '.' \\ '. $ До [1].'/', $ После [0].' \ 1 '. $ после [1], $ post); ' – user1748794

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> 
+1

Спасибо. Я посмотрю, как далеко я могу получить от этого! – user1748794

+0

Добро пожаловать, удачи! :) – MElliott

Смежные вопросы