php替代爆炸

时间:2013-07-23 23:44:48

标签: php html apache http

<?php
$URI_parts = explode('?', $_SERVER['REQUEST_URI'], 2);
echo 'http://' . $_SERVER['HTTP_HOST'] . $URI_parts[0];
?>

我已经读到爆炸对资源的影响相当大,我很好奇是否有最佳替代方案可以在这种情况下执行相同的任务。

上面的代码正在销毁包含参数的查询字符串?之后的所有内容。我需要找到成本最低的方法。

2 个答案:

答案 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函数,因为你听到[引证需要]它很慢。您应该使用适当的工具来完成工作,如果在发现性能问题后测量它并测量它并确定它是否使用该功能,那么请考虑重构。