I have a client who runs their site on WordPress and has misinterpreted the instructions here并将其所有锚点编码为 <variable name="DefaultLayout" value="${date}|${level:uppercase=true}|${logger}|${event-properties:item=callerName}|${event-properties:item=lineNumber}|${message}${onexception:|${onexception:${newline}${exception:format=tostring}}"/>
<variable name="Main" value="${when:when=starts-with('${message}','~'):inner=${newline}${message}:else=${DefaultLayout}}"/>
而不是${when:when=starts-with('${message}','~')
。
从技术上讲,锚是有效的,但是它们是不正确的,并且在将内容转换为AMP时会被剥离。
我不知道如何具体定位这些错误的<a id="example-anchor"></a>
标签并将其替换为<p id="example-anchor"></p>
标签。似乎大约有70,000个实例。
除其他外,我还尝试过<a>
和<p>
,但它们似乎都包含需要保留的实际<a id=\\"([^)]+)\\"><\/a>
标签。
感谢您的见解。
答案 0 :(得分:0)
只要他们不在同一id
标签中使用href
和a
,就可以简单地将所需的a
标签与<a\b([^>]+\bid=[^>]*>.*?<\/)a>
匹配并将它们替换为<p$1p>
。
答案 1 :(得分:0)
除非您具有MySQL或MariaDB的新版本,否则没有实际的方法进行替换。
但是,编写简短的PHP脚本(或其他语言)以获取每一行,对其进行修复,然后将其存储回去是可行的。
如果只是将a
更改为p
,则搜索正则表达式可能是<a id=
,只需将其替换为<p id=
。实际上,可以使用replace()
或str_replace()
之类的函数来完成此操作。