dtbhp60824 2016-09-23 09:44
浏览 67
已采纳

正则表达式替换url编码的字符串

I have a string in which I want to replace the text [[signature]] with a given value, but because it is encoded, the text looks like %5B%5Bsignature%5D%5D.

How do I replace this using a regular expression? This snippet works, but only if the string is not encoded:

$replace = preg_replace('/\[\[signature\]\]/', 'replaced!', $html);
  • 写回答

1条回答 默认 最新

  • douba3975 2016-09-23 09:57
    关注

    You have encoded the string, so just decode it then run your replace.

    $html = urldecode($html);
    $replace = preg_replace('/\[\[signature\]\]/', 'replaced!', $html);
    

    You can always encode it again afterwards if you need:

    $html = urlencode($html);
    

    Non-Regex Solution

    If your find/replace is really that simple then you don't even need to use regex. Just do a standard string replace:

    $html = str_replace('[[signature]]', 'replaced!', $html);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 如何将下列的“无限压缩存储器”设计出来
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口