ho qualche codice come questo, che sostituisce alcuni codici brevi con un link:Esiste un preg_replace condizionale in PHP?
$search = array(
'#\{r\|([^|]+)\|([^}]+)\}#',
'#\{t\|([^|]+)\|([^}]+)\}#',
...,
);
$replace = array(
'<a href="/ref/$1">$2</a>',
'<a href="/type/$1">$2</a>',
...,
);
$content = preg_replace($search, $replace, $content);
Ho un sacco di più che sono simili quindi mi chiedevo, c'è qualche modo per ridurre questo ad una semplice preg_replace
con un condizionale ?
Ad esempio, utilizzare la regex #\{([a-z])\|([^|]+)\|([^}]+)\}#
e sostituire la prima corrispondenza con qualcosa di diverso (r = ref, t = tipo) in base alla sua lettera? (Se aiuta, i codici brevi sono come {r|url-slug|LinkTitle}
.)