尝试从</span>
和</a>
之间删除文本。我想只是在</span>
之后删除some text here
,以便它只显示图标。删除<a></a>之间的文本但不是href或<span></span>使用PHP
$bad_string = '<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span>some text here</a></li>';
$good_string = '<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span></a></li>';
目前呼应什么:
<ul id="menu-social-menu-1" class="menu">
<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span>some text here</a></li>
<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span>some text here</a></li>
<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span>some text here</a></li>
<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span>some text here</a></li>
<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span>some text here</a></li>
</ul>
要重复一下:
<ul id="menu-social-menu-1" class="menu">
<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span></a></li>
<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span></a></li>
<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span></a></li>
<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span></a></li>
<li class="someclasses"><a target="_blank" href="http:www.example.com/dir/handle"><span></span></a></li>
</ul>
WordPress中使用这个下面的代码之后的文字跨度仍然存在。它不会去掉</span>
之后的文字。我的错误是什么?在这里:
<?php if (has_nav_menu('social-menu')) {
$menu = wp_nav_menu(array('theme_location' => 'social-menu', 'fallback_cb' => '', 'echo' => false));
function convertURL($menu) {
return preg_replace("/<a target=\"_blank\" href=\"([^\"]+?)\"><span><\/span>.*?<\/a>/", "<a target=\"_blank\" href=\"$1\"><span></span></a>", $menu);
}
echo $menu;
}
?>
我最终走了这条路。更简单,更清洁。我更新了正则表达式来解释超过1个URL集。我会用最终结果更新我的代码。 – JonnyBorg
我在我的问题中添加了一段代码,尝试合并您的功能。这种方法对我来说最合适,而且是一种更清洁的方法。但显然我没有正确实施。思考? – JonnyBorg
@JonnyBorg尝试从正则表达式中去除'?'。因此,它是'。*?<\/a>' – PKeidel