Php 使用str_replace和regex重写HTML锚

Php 使用str_replace和regex重写HTML锚,php,regex,str-replace,Php,Regex,Str Replace,以下内容通过编辑器自动输出: <a href="https://someurl.com/1001-web-file.pdf">1001-web-file</a> 我设法做到的是: $replace = array( '<a id="pdfthumb" href="' => '<img src="', '.pdf">pdfthumb</a>' => '-pdf-290x300.jpg"/></br>' ); $

以下内容通过编辑器自动输出:

<a href="https://someurl.com/1001-web-file.pdf">1001-web-file</a>
我设法做到的是:

$replace = array(
'<a id="pdfthumb" href="' => '<img src="',
'.pdf">pdfthumb</a>' => '-pdf-290x300.jpg"/></br>'
);

$text = str_replace(array_keys($replace), $replace, $text);
return $text;
$replace=array(
''=>'-pdf-290x300.jpg/>
' ); $text=str_replace(数组_键($replace),$replace,$text); 返回$text;
这可以拆掉锚标记并重建为img。但我做不了更多。我使用一些正则表达式创建了一个通配符,并意识到我需要创建一个变量,以便href在重建HTML时使用,但我被卡住了


非常感谢您的任何见解:)

在您的情况下,我认为如果您在客户端使用javascript进行操作,应该会更容易

我的背景不是PHP,但您可以使用相同的模式对PHP代码进行测试:

输入:

<a href="https://someurl.com/1001-web-file.pdf">1001-web-file</a>

输出:

<a href="https://someurl.com/1001-web-file.pdf"><img src="https://someurl.com/1001-web-file-pdf-290x300.jpg"/></a>

var输入=”;
var模式=/href=\“(.+)\.pdf\”/;
var match=input.match(模式)[1];
input=input.replace(/()*()/,“$1$2”);

console.log(input)
这里是翻译后的php代码

$input = '<a href="https://someurl.com/1001-web-file.pdf">1001-web-file</a>';
preg_match('/href="(.+)\.pdf"/', $input, $m);
$match = $m[1];
$input = preg_replace('/(<a.*>).*(<\/a>)/', '$1<img src="'. $match .'-pdf-290x300.jpg">$2', $input);
echo $input;
$input='';
preg_match('/href=“(.+)\.pdf”/',$input,$m);
$match=$m[1];
$input=preg_replace(“/()*()/”、“$1$2”、$input);
echo$输入;

谢谢:)因为我希望实现的服务器端是理想的。这工作非常完美!我想更好地理解此解决方案的每个部分。
$m[1];
完成了什么?我知道它是在前面的行中设置的。
$m
是如何实现的。
()*()
工作?我知道
*
匹配任何字符,您正在使用它重建HTML-如何添加ie
target=“\u blank”
?感谢您的反馈:D
<a href="https://someurl.com/1001-web-file.pdf"><img src="https://someurl.com/1001-web-file-pdf-290x300.jpg"/></a>
$input = '<a href="https://someurl.com/1001-web-file.pdf">1001-web-file</a>';
preg_match('/href="(.+)\.pdf"/', $input, $m);
$match = $m[1];
$input = preg_replace('/(<a.*>).*(<\/a>)/', '$1<img src="'. $match .'-pdf-290x300.jpg">$2', $input);
echo $input;