I am trying
[audio mp3=\"https://abcd.com/wp-content/uploads/sites/2/2020/03/classical-demo.mp
The problem is that you are running replace on $a
without updating it, so you function replaces <
with [
and outputs, then it replaces >
with ]
but on the original variable, then outputs.
If you update the variable with the result of str_replace
it works as intended.
$a = '[audio mp3="https://abcd.com/wp-content/uploads/sites/2/2020/03/classical-demo.mp3"][/audio]';
$a = str_replace("[","<",$a);
$a = str_replace("]",">",$a);
$a = str_replace("audio","a",$a);
$a = str_replace("mp3=","href=",$a);
echo $a;
Also as @Phil pointed out in a comment your last line will change your file extension, I adjusted the last replace to account for this.