<?php
$URI_parts = explode('?', $_SERVER['REQUEST_URI'], 2);
echo 'http://' . $_SERVER['HTTP_HOST'] . $URI_parts[0];
?>
我已经读到爆炸对资源的影响相当大,我很好奇是否有最佳替代方案可以在这种情况下执行相同的任务。
上面的代码正在销毁包含参数的查询字符串?
之后的所有内容。我需要找到成本最低的方法。
答案 0 :(得分:7)
您应该使用parse_url(),如下所示:
$URI_parts = parse_url( $_SERVER['REQUEST_URI'] );
echo 'http://' . $_SERVER['SERVER_NAME'] . $URI_parts['path'];
答案 1 :(得分:3)
您可以使用strstr($_SERVER['REQUEST_URI'], "?", TRUE)
。或者,您可以使用strtok($_SERVER['REQUEST_URI'], "?")
。
它应该在满意后停止匹配。
顺便说一句,你不应该使用PHP函数,因为你听到[引证需要]它很慢。您应该使用适当的工具来完成工作,如果在发现性能问题后测量它并测量它并确定它是否使用该功能,那么请考虑重构。