ube*_*sch 9 php uri string-matching
我正在寻找一种简单的方法来在PHP中找到两个字符串的匹配部分(特别是在URI的上下文中)
例如,考虑两个字符串:
http://2.2.2.2/~machinehost/deployment_folder/
和
/〜machinehost/deployment_folder /用户/鲍勃/设置
我需要的是从第二个字符串中删除这两个字符串的匹配部分,从而导致:
用户/鲍勃/设置
在将第一个字符串作为前缀附加之前,形成一个绝对URI.
是否有一些简单的方法(在PHP中)比较两个任意字符串以匹配其中的子字符串?
编辑:正如所指出的,我的意思是两个字符串共有的最长匹配子字符串
我不确定您的完整请求,但想法是:
让 A 成为您的 URL,B 成为您的“/~machinehost/deployment_folder/users/bob/settings”
我还没有测试过,但如果你真的需要,我可以帮助你让这个出色的(讽刺的)解决方案发挥作用。
请注意,使用正则表达式可能是这样的
$pattern = "$B(.*?)"
$res = array();
preg_match_all($pattern, $A, $res);
Run Code Online (Sandbox Code Playgroud)
编辑:我认为你最后的评论使我的回复无效。但你想要的是找到子字符串。因此,您可以首先从一个重型算法开始,尝试在 {2, length(B)} 中找到 A 中的 B[1:i],然后使用一些动态编程的东西。