替换时的一些问题~请高手帮看看啊!~!

goldboy258 2008-06-26 07:21:37
目的:将$body中的word替换成 <a href="href">word</a>
1 数组$words $hrefs(元素相同)

2 数组中元素替换

3
usort($thearray, 'foo');

function foo($a, $b) {
if(strlen($a) == strlen($b)) return 0;
return strlen($a) < strlen($b) ? -1 : 1;
}

$string = str_replace('\"', '"', $body);
foreach($words as $k => $word){
$abc= '<a href="'.$hrefs[$k].'">'.$word.'</a>';

$string = preg_replace('/'.$word.'/', $abc, $string,3);

}//end foreach



问题出现了:(不知道还有什么意向不到的后果)
1.本来内容中带链接的 也会加上链接 变成了多个a标签套在一起(要能把被A标签包围的字符排除在外,不进行替换操作就好)
(内容<a href="csdn.html">CSDN程序</a>)会变成(内容<a href="a.html">CSDN<a href="code.html">程序</a></a>)

2.如果有重复的话也会多次替换,虽然排序了(从大到小)

3. 1中HTML是(<a href="csdn_code.html">CSDN程序</a>) 如果某个word是 csdn 的话,HTML中就会出现(<a href="<a href="csdn.html">csdn</a>_code.html">CSDN程序</a>)

怎样在替换中不出现这几个问题啊~正则真的头晕啊 郁闷

不知道还有没有其他问题 请高手帮忙啊!~~谢谢啦


...全文
105 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sd5816690 2008-06-29
  • 打赏
  • 举报
回复
原来回过一个帖子,和LZ的问题差不多,奇怪的是连提问人名字也差不多
http://topic.csdn.net/u/20080612/09/7e7ef4d7-0e8f-4b54-a3a4-5c5717097a52.html

我原来的方法有缺点,
但根据 7楼 的想法,在我原来的方法上改进了一下:
在此谢谢7楼

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
<script>
var keywords=[];//要替换的部分
var replaces=[];//替换成什么
var signs=[];//特定标记,不用管它

keywords[0]=/诺基亚/g;
keywords[1]=/Google/g;
keywords[2]=/头像/g;

replaces[0]="<a href=\"http://www.nokia.com\">诺基亚 </a>";
replaces[1]="<a href=\"http://www.g.cn\">G.cn </a>";
replaces[2]="<a href=\"/face/\">头像 <a>";

function convertSegment(contentValue){
//设置signs,并替换为signs
for(var i=0; (e = keywords[i]); i++){
signs[i] = "thePartWhichWillBeReplace"+i;
contentValue = contentValue.replace(keywords[i],signs[i]);
}

for(var i = 0; (e = signs[i]); i++){
while(contentValue.indexOf(signs[i]) >= 0){
contentValue = contentValue.replace(signs[i],replaces[i]);
}
}
return contentValue;
}

function convert(){
var content = document.getElementById("contentToConvert").innerHTML;
var arr = content.split("<");
content = "";
for(var i=0; i < arr.length ;i++){
if(!/^[aA] /.test(arr[i]) && arr[i].indexOf("img") != 0 && arr[i].indexOf("IMG") != 0){
arr[i] = convertSegment(arr[i]);
}
content += "<" + arr[i] + "\n";
}
alert(content.substring(1));
document.getElementById("contentToConvert").innerHTML = content.substring(1);
}
</script>

</HEAD>
<BODY onload="convert()">
<div id="contentToConvert">
<p>北京时间6月24日消息,据国外媒体报道, <a href="http://www.nokia.com" title="nokia">诺基亚 </a>将出资2.64亿欧元(约合4.1亿美元)收购智能手机操作系统Symbian剩余的52%股份,并将它完全置于一个诺基亚新成立的开源基金会的管理之下。著名博客作者达纳布兰肯霍恩(Dana Blankenhorn)今天撰文指出,这表明由Google(谷歌)倡导的Android手机平台已给市场带来了冲击。 </p>
<p>头像: <img src="http://profile.csdn.net/dada20042030/picture/2.jpg" alt="我的头像"/> </p>
</div>
</BODY>
</HTML>

ashchen 2008-06-29
  • 打赏
  • 举报
回复
正则切字符串成数组
遍历数组,<a <img 打头的跳过不替换
再合并
ashchen 2008-06-29
  • 打赏
  • 举报
回复
估计是想要php代码

想这样替换的一般是想seo优化,js替换不会有效果,搜索引擎不认js

1再具体一点:
切分用点是 <a></a>|<img>,正则自己想,函数用preg_split
goldboy258 2008-06-28
  • 打赏
  • 举报
回复
例子

内容:
<p>北京时间6月24日消息,据国外媒体报道,<a href="http://www.nokia.com" title="nokia">诺基亚</a>将出资2.64亿欧元(约合4.1亿美元)收购智能手机操作系统Symbian剩余的52%股份,并将它完全置于一个诺基亚新成立的开源基金会的管理之下。著名博客作者达纳布兰肯霍恩(Dana Blankenhorn)今天撰文指出,这表明由Google(谷歌)倡导的Android手机平台已给市场带来了冲击。</p>
<p>头像:<img src="http://profile.csdn.net/dada20042030/picture/2.jpg" alt="我的头像"/></p>

关键字:
1 诺基亚 -> <a href="http://www.nokia.com">诺基亚</a>
2 Google -> <a href="http://www.g.cn">G.cn</a>
3 头像 -> <a href="/face/">头像<a>

需要结果:
<p>北京时间6月24日消息,据国外媒体报道,<a href="http://www.a.com" title="nokia">诺基亚</a>将出资2.64亿欧元(约合4.1亿美元)收购智能手机操作系统Symbian剩余的52%股份,并将它完全置于一个<a href="http://www.nokia.com">诺基亚</a>新成立的开源基金会的管理之下。著名博客作者达纳布兰肯霍恩(Dana Blankenhorn)今天撰文指出,这表明由<a href="http://www.g.cn">G.cn</a>(<a href="www.Google.com">谷歌</a>)倡导的Android手机平台已给市场带来了冲击。</p>
<p><a href="/face/">头像<a>:<img src="http://profile.csdn.net/dada20042030/picture/2.jpg" alt="我的头像" title="我的头像" /></p>

我现在想要的就是
1.排除a标签内的内容替换
2 排除img标签内的替换
3 排除重复替换 比如 谷歌 和谷歌搜索 就只替换一个 这个好像可以排序解决~


剑心永远OK 2008-06-27
  • 打赏
  • 举报
回复
直接发个例子,然后说想要的结果。。
goldboy258 2008-06-26
  • 打赏
  • 举报
回复
怎么没高手经过这啊
goldboy258 2008-06-26
  • 打赏
  • 举报
回复
我一共才发4个帖子 老大~~
刚才把2个都结贴啦!~
goldboy258 2008-06-26
  • 打赏
  • 举报
回复
晕啦 我都结贴了哦 怎么老是回复这个的啊 ?
内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。

21,889

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧