当前位置:首页 » 编程语言 » php页面url

php页面url

发布时间: 2022-07-20 11:53:34

❶ 如何在php中实现URL路由

第一步,首先要在服务器的配置上对/router/路径进行拦截

调用某个文件夹目录下的index.php页面,假定现在所有模块使用单独的文件存放于class目录下,该目录与router平级,如下图所示:

第二步,路由分发器的实现(index.php)
1: <!Doctype html>
2: <html>
3: <head>
4: <title>路由测试~~</title>
5: <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6: </head>
7: <body>
8:
9: <?php
10:
11: date_default_timezone_set("Asia/Shanghai");
12:
13: define("MODULE_DIR", "../class/");
14:
15:
16: $_DocumentPath = $_SERVER['DOCUMENT_ROOT'];
17: $_FilePath = __FILE__;
18: $_RequestUri = $_SERVER['REQUEST_URI'];
19:
20: $_AppPath = str_replace($_DocumentPath, '', $_FilePath); //==>\router\index.php
21: $_UrlPath = $_RequestUri; //==>/router/hello/router/a/b/c/d/abc/index.html?id=3&url=http:
22:
23: $_AppPathArr = explode(DIRECTORY_SEPARATOR, $_AppPath);
24:
25: /**
26: * http://192.168.0.33/router/hello/router/a/b/c/d/abc/index.html?id=3&url=http:
27: *
28: * /hello/router/a/b/c/d/abc/index.html?id=3&url=http:
29: */
30:
31: for ($i = 0; $i < count($_AppPathArr); $i++) {
32: $p = $_AppPathArr[$i];
33: if ($p) {
34: $_UrlPath = preg_replace('/^\/'.$p.'\//', '/', $_UrlPath, 1);
35: }
36: }
37:
38: $_UrlPath = preg_replace('/^\//', '', $_UrlPath, 1);
39:
40: $_AppPathArr = explode("/", $_UrlPath);
41: $_AppPathArr_Count = count($_AppPathArr);
42:
43: $arr_url = array(
44: 'controller' => 'index',
45: 'method' => 'index',
46: 'parms' => array()
47: );
48:
49: $arr_url['controller'] = $_AppPathArr[0];
50: $arr_url['method'] = $_AppPathArr[1];
51:
52: if ($_AppPathArr_Count > 2 and $_AppPathArr_Count % 2 != 0) {
53: die('参数错误');
54: } else {
55: for ($i = 2; $i < $_AppPathArr_Count; $i += 2) {
56: $arr_temp_hash = array(strtolower($_AppPathArr[$i])=>$_AppPathArr[$i + 1]);
57: $arr_url['parms'] = array_merge($arr_url['parms'], $arr_temp_hash);
58: }
59: }
60:
61: $mole_name = $arr_url['controller'];
62: $mole_file = MODULE_DIR.$mole_name.'.class.php';
63: $method_name = $arr_url['method'];
64:
65: if (file_exists($mole_file)) {
66: include $mole_file;
67:
68: $obj_mole = new $mole_name();
69:
70: if (!method_exists($obj_mole, $method_name)) {
71: die("要调用的方法不存在");
72: } else {
73: if (is_callable(array($obj_mole, $method_name))) {
74: $obj_mole -> $method_name($mole_name, $arr_url['parms']);
75:
76: $obj_mole -> printResult();
77: }
78: }
79:
80: } else {
81: die("定义的模块不存在");
82: }
83:
84:
85: ?>
86:
87: </body>
88: </html>

获取请求的uri,然后拿到要加载的模块名、调用方法名,对uri参数进行简单的判断..

第三步,模块的编写
根据上述的uri,我们要调用的是Hello模块下的router方法,那么可以在class目录下定义一个名为Hello.class.php的文件(注意linux下是区分大小写的)
1: <?php
2:
3: class Hello {
4:
5: private $_name;
6: private $_varValue;
7:
8: function __construct() {
9:
10: }
11:
12: function router() {
13: $this->_name = func_get_arg(0);
14: $this->_varValue = func_get_arg(1);
15: }
16:
17: function printResult() {
18: echo $this->_name;
19: echo "<p>";
20: echo var_mp($this->_varValue);
21: echo "</p>";
22: }
23: }
24:
25: ?>

❷ PHP CodeIgniter框架中怎么获取当前页面的URL

1.
默认情况,你的
url
中会包含 index.php 文件:
如果你的
apache
服务器启用了 mod_rewrite ,你可以简单的通过一个
.htaccess
文件再加上一些简单的规则就可以移除
index.php
了。下面是这个文件的一个例子,
其中使用了
"否定条件"
来排除某些不需要重定向的项目:
rewriteengine on
rewritecond %{request_filename} !-f
rewritecond %{request_filename} !-d
rewriterule ^(.*)$ index.php/$1 [l]简单的说就是:在网站根目录新建一个名字为:“.htaccess”的文件,文件内容拷贝上面4行代码即可!
2.
如果你使用的iis服务器的话,需要安装rewrite模块,可以去网络一找一下,很多

❸ php打开URL的几种方法

PHP中打开URL地址的几种方法总结,这里的函数主要用于小偷采集等函数。
1:用file_get_contents
以get方式获取内容
复制代码代码如下:

<?php
$url='http://www..com/';

$html=file_get_contents($url);
//print_r($http_response_header);

ec($html);
printhr();
printarr($http_response_header);

printhr();
?>

示例代码2:用fopen打开url,
以get方式获取内容
复制代码代码如下:

<?
$fp=fopen($url,'r');

printarr(stream_get_meta_data($fp));
printhr();
while(!feof($fp)){

$result.=fgets($fp,1024);
}
echo"urlbody:$result";

printhr();
fclose($fp);
?>


示例代码3:用file_get_contents函数,以post方式获取url
复制代码代码如下:

<?php
$data=array('foo'=>
'bar');
$data=http_build_query($data);
$opts=array(
'http'
=>array(
'method'=>'POST',
'header'=>"Content-type:
application/x-www-form-urlencoded".
"Content-Length:".strlen($data).
"",
'content'=>$data
),
);
$context=
stream_context_create($opts);
$html=
file_get_contents('http://localhost/e/admin/test.html',false,$context);

echo$html;
?>


示例代码4:用fsockopen函数打开url,以get方式获取完整的数据,包括header和body
复制代码代码如下:

<?
functionget_url
($url,$cookie=false){
$url=parse_url($url);
$query=
$url[path]."?".$url[query];
ec("Query:".$query);
$fp=fsockopen(
$url[host],$url[port]?$url[port]:80,$errno,$errstr,30);
if(!$fp){

returnfalse;
}else{
$request="GET$queryHTTP/1.1";

$request.="Host:$url[host]";
$request.="Connection:Close";

if($cookie)$request.="Cookie:$cookie ";
$request.="";

fwrite($fp,$request);
while(!@feof($fp)){
$result.=@fgets($fp,
1024);
}
fclose($fp);
return$result;
}
}

//获取url的html部分,去掉header
functionGetUrlHTML($url,$cookie=false){

$rowdata=get_url($url,$cookie);
if($rowdata)
{
$body=
stristr($rowdata,"");
$body=substr($body,4,strlen($body));
return$body;

}
returnfalse;
}

?>

❹ php取页面所有的URL怎么实现

function get_all_url($code){ preg_match_all(‘/"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i’,$code,$arr); return array(‘name’=>$arr[2],’url’=>$arr[1]);}

❺ php如何获取当前页面url路径

#测试网址: http://localhost/blog/testurl.php?id=5
//获取域名或主机地址
echo $_server['http_host']."
"; #localhost
//获取网页地址
echo $_server['php_self']."
"; #/blog/testurl.php
//获取网址参数
echo $_server["query_string"]."
"; #id=5
//获取用户代理
echo $_server['http_referer']."
";
//获取完整的url
echo 'http://'.$_server['http_host'].$_server['request_uri'];
echo 'http://'.$_server['http_host'].$_server['php_self'].'?'.$_server['query_string'];
#http://localhost/blog/testurl.php?id=5
//包含端口号的完整url
echo 'http://'.$_server['server_name'].':'.$_server["server_port"].$_server["request_uri"];
#http://localhost:80/blog/testurl.php?id=5
//只取路径
$url='http://'.$_server['server_name'].$_server["request_uri"];
echo dirname($url);
#http://localhost/blog

❻ 如何通过PHP获取当前页面URL函数

通过PHP获取当前页面URL函数代码如下,调用时只需要使用 curPageURL() 就可以:

/* 获得当前页面URL开始 */

function curPageURL() {

$pageURL = 'http';

if ($_SERVER["HTTPS"] == "on") { // 如果是SSL加密则加上“s”

$pageURL .= "s";

}

$pageURL .= "://";

if ($_SERVER["SERVER_PORT"] != "80") {

$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];

} else {

$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];

}

return $pageURL;

}

/* 获得当前页面URL结束 */

❼ 原生PHP如何获取当前页面URL

functionget_current_url(){
$current_url='http://';
if(isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']=='on'){
$current_url='https://';
}
if($_SERVER['SERVER_PORT']!='80'){
$current_url.=$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI'];
}else{
$current_url.=$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
}
return$current_url;
}

希望能帮到你

❽ php页面跳转的时候url会自己变

跳转

header()为php函数,向浏览器发送指定命令

html:
<meta http-equiv="Refresh" content="3;url=other.php"/>
立即跳转:
header('Location:other.php'); //file_put_contents('bee.txt','execute'); die;
执行header时候,并不是立即结束,而是会把页面执行完毕;在header前面不能有任何输出,若有开启输出缓冲则不提示错误,php.ini->output_buffering = 4096|OFF

提示跳转:
header('Refresh:3,Url=other.php'); echo '3s 后跳转'; //由于只是普通页面展示,提示的样式容易定制 die;
封装的跳转函数:
/* *跳转 *@param $url 目标地址 *@param $info 提示信息 *@param $sec 等待时间 *return void */ function jump($url,$info=null,$sec=3) { if(is_null($info)){ header("Location:$url"); }else{ // header("Refersh:$sec;URL=$url"); echo"<meta http-equiv=\"refresh\" content=".$sec.";URL=".$url.">"; echo $info; } die; }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

❾ 问如何通过php获取提交页面的URL

楼上两种回答都可以,
1、$_SERVER['HTTP_REFERER']
可以获取到仍和想页面提交过来的页面,
2、同样你可以在A
B两页的表单中
附加一个隐藏的表单值
<input
type='hidden'
name='yemian'
value='A'>
两个页面分别使用不同的value,在获取表单时
看下$_POST['yemian']的值来判断提交的页面
3、当然
,你同样可以做两个处理的php脚本,然后在两个页面分别调教到两个不同的脚本中,这也就不需要在判断了

热点内容
荣耀畅玩什么配置 发布:2025-02-01 00:36:35 浏览:458
电脑对时服务器 发布:2025-02-01 00:36:22 浏览:162
闪迪存储卡港版 发布:2025-02-01 00:31:25 浏览:78
visualstudio编译器 发布:2025-02-01 00:31:20 浏览:753
如何移植安卓上面的软件 发布:2025-02-01 00:28:03 浏览:121
一刀传世混沌和破天是什么服务器 发布:2025-02-01 00:28:00 浏览:688
红米k40怎么修改安卓data 发布:2025-02-01 00:23:04 浏览:886
文件夹怎么显示全名 发布:2025-02-01 00:10:30 浏览:860
sdwebimage缓存机制 发布:2025-02-01 00:02:55 浏览:886
安卓手机如何调电视 发布:2025-01-31 23:54:37 浏览:556