0

我需要用 seo 链接替换使用 preg_replace 的 href,比如

<a href="blabla" class="bla" style="bla">bla</a>

<a href="blabla.html" class="bla" style="bla">bla</a>

我需要获得 2 个变量,第一个到第二个

我做了这个正则表达式

preg_replace('#<a href="(.*?)" (.*?)>(.*?)</a>#',
             '<a href="$1.html">$3</a>'
               );

它的工作,但如果它们在 href="" 标记之后什么都没有,比如样式或类,则正则表达式不起作用,所以 A 必须有样式和类或其他东西才能工作

是他们忽略 href="" 之后的类或样式标记的任何方式还是使用此正则表达式的任何方式

preg_replace('#<a href="(.*?)"(>.*?)</a>#',
             '<a href="$1.html">$2</a>'
               );

或类似的东西使其仅在没有 3$ 的情况下以 1$ 和 2$ 的形式工作?我的意思是让第二个得到所有的东西href"" to </a>

4

1 回答 1

3

为什么不直接使用它mod_rewrite呢?

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !\.html
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html

尝试用正则表达式解析 HTML 可能会导致他来的小马

于 2012-04-19T13:42:02.140 回答