Php 将href替换为链接文本/名称

Php 将href替换为链接文本/名称,php,href,Php,Href,我在php中有一个字符串和许多标记。。。更多神职人员请参见下文 就像。。。。布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉 hiiiii 我的问题是我想用link1、link2、link3替换href I.e test.php。。。。等等 “请帮忙。”只显示它们为正确链接先断,不< /强>使用正则

我在php中有一个字符串和许多标记。。。更多神职人员请参见下文

就像。。。。布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉
hiiiii

我的问题是我想用link1、link2、link3替换href I.e test.php。。。。等等


“请帮忙。”只显示它们为正确链接

先断,<强>不< /强>使用正则表达式。这可能会有一点效果,但沿着这条路走下去就是疯狂

您要做的是使用PHP的“DOM”库将字符串解析为XML。这会将HTML(假定它是有效的HTML且没有格式错误)转换为一组对象,您可以导航、修改这些对象,然后再将其转换回字符串

你可以在网上找到一些指南,比如

这是纯粹的即兴代码,我还没有测试过,但它应该能让您大致了解:

$doc = new DOMDocument();
$doc->loadHtml($YOUR_DATA); 
$links = $doc->getElementsByTagName( "a" );
foreach( $links as $link )
{
    // Modify $link however you need to
}
$CONVERTED_DATA = $doc->saveHtml();

使用文档和朋友:

类似这样的东西,但不确定,因为它是未经测试的,我只是离开文档

$xml = new DOMDocument();
$xml->loadHTML($input_string);
$link_list = $xml->getElementsByTagName('a');
$link_list_length = $link_list->length;
for ($i = 0; $i < $link_list_length; $i++) {
    $attributes = $link_list->item($i)->attributes;
    $href = $attributes->getNamedItem('href');
    $href->value = $link_list->item($i)->nodeValue;
}
$output_string = $xml->saveHTML();
$xml=newDOMDocument();
$xml->loadHTML($input\u string);
$link_list=$xml->getElementsByTagName('a');
$link\u list\u length=$link\u list->length;
对于($i=0;$i<$link\u list\u length;$i++){
$attributes=$link\u list->item($i)->属性;
$href=$attributes->getNamedItem('href');
$href->value=$link\u list->item($i)->nodeValue;
}
$output_string=$xml->saveHTML();

您可以发布代码来澄清吗?我想用其值替换act_rules.html,该值为“征收服务税的应税服务估价”。谢谢您的考虑。您是否希望链接锚作为href,指向无效的目的地?你想在这里实现什么?这个链接1、2、3不是静态的。。它们可能是一个由5、10、15……组成的字符串。。。。切雷特。。意味着不是静态的。。它一直在变化。。所以用这种方式是不可能的。。你还有别的办法吗?@miurvest很高兴我能帮上忙。如果这是解决您问题的解决方案,您可能希望通过单击答案旁边的复选标记来接受答案。这有助于下一个发现这篇文章有类似问题的人。@miurvest它应该在答案左边投票号码的正下方。