2012-04-19 37 views
0

我需要需要更换URL href和标签

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

我需要得到2更换使用与SEO链接了preg_replace A HREF,像

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

瓦尔第一个到第二个

我做了这个正则表达式

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

它的工作,但如果他们没有什么后href =“”标签样式或类正则表达式不工作,所以A必须有风格和类或其他工作

是他们的任何方式来忽略类或样式标记HREF =后“”或以任何方式使用此REGEXT

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

或财产以后这样使它$ 1和$ 2只工作不3个$?我的意思是让第二个人得到href"" to </a>后的每一件事!

+0

你为什么不在你的正则表达式中忽略它们,即只匹配'href'部分。 – 2012-04-19 13:43:37

+0

你也应该去你以前的问题,并接受你最好的答案。 – 2012-04-19 13:46:41

回答

3

为什么不把它保留原样并使用mod_rewrite

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

试图用正则表达式解析HTML可能导致the pony he comes

+0

他不一定为一个网站工作。 – 2012-04-19 13:45:23

+0

我的问题没有与mod_write它与这个正则表达式只有当别人帮我抓住每一件事后href =“”我非常感激 – 2012-04-19 13:46:02