gpt4 book ai didi

php - 查找并将所有 href url 转换为另一个 url php

转载 作者:搜寻专家 更新时间:2023-10-31 21:24:55 26 4
gpt4 key购买 nike

我有一个html代码。现在我想找到所有 href 标签并想将它们的 url 转换为另一个 url。我正在使用这段代码

public function convertLinks($message,$stats_code)
{
$click_link = site_url('click-'.$stats_code.'email');
$content = explode("\n", $message);
$URLs = array();
for($i=0;count($content)>$i;$i++)
{
if(preg_match('/<a href=/', $content[$i]))
{
list($Gone,$Keep) = explode("href=\"", trim($content[$i]));
list($Keep,$Gone) = explode("\">", $Keep);
$message= strtr($message, array( "$Keep" => $click_link.$Keep, ));
}
}
return $message;
}

这段代码工作正常,但是当一行中有 2 个或更多 href 链接时,它只会转换第一个 href 链接,并且当 ancher 标签还具有任何其他标签(如 class 或 target 或任何其他标签时,它无法转换链接)。请给我合适的解决方案提前谢谢你

最佳答案

public function convertLinks($message,$stats_code)
{
$click_link = site_url('click-'.$stats_code.'email');
$message = str_replace('<a','{smart_href_link_epro} <a',$message);
$content = explode("{smart_href_link_epro}", $message);
$a_count = count($content);

for($i=0;$a_count>$i;$i++)
{
if(preg_match('/href=/', $content[$i]))
{
list($Lost,$Keep) = explode("href=\"", trim($content[$i]));
list($Keep,$Lost) = explode("\"", $Keep);
if($Keep!='#' && $Keep!='')
$message= strtr($message, array( "$Keep" => $click_link.base64_encode(base64_encode($Keep)), ));
}
}

return str_replace('{smart_href_link_epro}','',$message);
}

它非常适合我..

关于php - 查找并将所有 href url 转换为另一个 url php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38408016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com