Я хочу отображать содержимое на php-странице из.txt и менять тег на html-код следующим образом:
Измените это:
[img: something.jpg]
К этому:
<img src="something.jpg" />
Я пытался использовать preg_replace
, но я понятия не имею, как использовать эти символы, например /(){}^*.:
Что значит использовать такие вещи, чтобы извлечь некоторые переменные $1 $2
из строки?
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
Вы можете использовать следующее регулярное выражение, например:
\[(\w+):\s?(\w+.\w+)]
Regex Пояснение
\[
: \[
будет проверять [
буквально.(\w+):
(\w+)
Захват групп любого символа слова [a-zA-Z0-9_]
. +
Между одним и неограниченным временем, как можно больше раз :
проверяет :
буквально\s?
: соответствует любому символу пробела [\r\n\t\f ]
. ?
Между ноль и один раз, сколько раз(\w+.\w+)
: Захват группы любого символа слова [a-zA-Z0-9_]
Таким образом, используя preg_replace
как
echo preg_replace('/\[(\w+):\s?(\w+.\w+)]/',"<$1 src='$2' />","[img: something.jpg]");
@Uchiha имеет большое регулярное выражение (+1 для этого!), Но вы можете использовать preg_replace_callback()
вместо этого, если вы хотите использовать его для приложения типа [shortcode]
:
function shortcode($val = false)
{
return (!empty($val))? preg_replace_callback('/\[(\w+):\s?(\w+.\w+)]/',function($matches) {
if(!empty($matches[2])) {
switch($matches[1]) {
case ('img'):
return '<img src="'.$matches[2].'" />';
}
}
},$val) : false;
}
echo shortcode('[img: something.jpg]');
echo preg_replace("/\[img:\s*([^\]]+)\]/i","<img src='$1'>",$string)