PHP 获取网页地址(包括锚点标记)

wangyouworld 2009-02-09 10:57:23
这个问题很不好整,希望大家帮着解决下:

我使用,$_SERVER['HTTP_REFERER'] 可以获取网页地址,但后面的#10之类的无法获取。
如,网页地址是:http://abc.com/1.htm#10
后面的#10怎么获取呀?

在网上找了好久,只知道,Java里面以下可以获取到:
<script>alert(window.location.hash)</script> //获取后面锚标,就是#10之类的。

<script>alert(window.location);</script> //获取当前网页地址,包括#10。

PHP怎么获取呀?

如果PHP获取不了,能不能想办法,让Java得到的地址,传给PHP。(PS,咱Java什么也不知道,希望高人给指点下。)

小弟,在此谢谢先。
...全文
2014 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangyouworld 2009-02-10
  • 打赏
  • 举报
回复
但问题是,需要PHP对信息处理下。

地址,index.php?tid=10#1

处理后才能得到10.htm,及#1。
yctin 2009-02-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangyouworld 的回复:]
我想做个插件,把CTB论坛上的东西,全部生成静态文件。

CTB论坛上,为了方便引用,每楼都有一个锚标,就是#1之类的。

将论坛生成静态时,也为了方便引用。

因此,才想办法获取网页地址后面的#。

PHP如果不能获取的话,使用Java,能不能将获取的地址,让PHP使用下。
[/Quote]

那你只要在生成静态文件的过程中
在html中找出连结的锚标就可以(就是字符串搜索)

不需要经浏览器取得
Zijian_Zhang 2009-02-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangyouworld 的回复:]
我想做个插件,把CTB论坛上的东西,全部生成静态文件。

CTB论坛上,为了方便引用,每楼都有一个锚标,就是#1之类的。

将论坛生成静态时,也为了方便引用。

因此,才想办法获取网页地址后面的#。

PHP如果不能获取的话,使用Java,能不能将获取的地址,让PHP使用下。
[/Quote]

这个是客户端的限制,浏览器自己是不会发送#后面的字符的,所以在服务端做什么工作都是没有用的??

所以,楼主要用JavaScript获取后,用Ajax发送数据,才可以的。
wangyouworld 2009-02-09
  • 打赏
  • 举报
回复
我想做个插件,把CTB论坛上的东西,全部生成静态文件。

CTB论坛上,为了方便引用,每楼都有一个锚标,就是#1之类的。

将论坛生成静态时,也为了方便引用。

因此,才想办法获取网页地址后面的#。

PHP如果不能获取的话,使用Java,能不能将获取的地址,让PHP使用下。
yctin 2009-02-09
  • 打赏
  • 举报
回复
楼主最好说一下想做什么
提供一下相关代码

因为这个问题要针对不同情况解决
PHP不能直接取得#后的内容
wxq4100798 2009-02-09
  • 打赏
  • 举报
回复
PHP,无法获取,用JS吧
yctin 2009-02-09
  • 打赏
  • 举报
回复
这样根本不需要处理吧

你另存http://abc.com/index.php?tid=10 为 10.htm
路径用10.htm#1
效果不会变的

那个标签浏览器会自动跟进
wangyouworld 2009-02-09
  • 打赏
  • 举报
回复
设想下:
CTB论坛与论坛静态网页在不同目录。
1、显示帖子:http://abc.com/index.php?tid=10#1
其对应的静态网页名是:10.htm
2、静态网页目录中使用index.php处理GET的信息。
a,j是否为1,是则进行PHP处理。否,Java处理。

Java处理:
使用Java获取后面#的内容,将信息格式化后重新再提交给本身。如index.php?tid=10&miaobiao=1&j=1
在这里,说明下,miaobiao,为锚标信息。j=1时,说明是2次提交。

PHP处理:
顺利读取网页地址的GET值。
并使用PHP的内置跳转,10.htm#1

说半天,我自己也迷了,思路是这个,问题是,前面的Java处理不好整,得想想办法。

以下是源PHP显示静态源码:
<?php
$S_zf_shuzu = "QL2_";
//QL2_1_27,2
if (isset($_GET['mods'])){
switch($_GET['mods']){
case "topicdisplay"://帖子内容显示
echo "topicdisplay <br>";
if (isset($_GET['action']) and $_GET['action']=="say"){//显示公告
if (isset($_GET['forumid'])){
$S_zf_shuzu .= $_GET['forumid']."_say";
}else{
$S_zf_shuzu .= "all_say";}
}else{
if (isset($_GET['forumid'])){//获取版块ID
$S_zf_shuzu .= $_GET['forumid'];
if (isset($_GET['postid'])){//获取帖子ID
$S_zf_shuzu .= "_".$_GET['postid'];
if (isset($_GET['p'])){//获取页数
$S_zf_shuzu .=",".$_GET['p'];
}else{//默认为第一页
$S_zf_shuzu .=",1";}
}
}else{//forumid无值时显示第1个版块
$S_zf_shuzu .="1";}
}
break;

case "forumdisplay"://版块内容显示
echo "forumdisplay<br>";
if (isset($_GET['forumid'])){//获取版块ID
$S_zf_shuzu .= $_GET['forumid'];
}else{//forumid无值时显示第1个版块
$S_zf_shuzu .="1";}

if (isset($_GET['action'])){//显示分类版块
if (isset($_GET['catId'])){
$S_zf_shuzu =$_GET['catId'];
}else{$S_zf_shuzu="index";}
}
break;

case "others"://帮助信息显示
echo "others<br>";
if (isset($_GET['action'])){
$S_zf_shuzu .= $_GET['action'];
}else{
$S_zf_shuzu .= "ctbhelp";}
break;

case "member":
echo "member<br>";
if (isset($_GET['action']) and isset($_GET['id'])){
$S_zf_shuzu .= "info_".$_GET['id'];
}else{
$S_zf_shuzu .="info_3";}
break;

default:
$S_zf_shuzu = "index";
}
}else{
$S_zf_shuzu="index";}
$S_zf_shuzu.=".htm";
echo $S_zf_shuzu;
?>


演示方式:?mods=forumdisplay&forumid=9
将CTB论坛的地址,转义成HTM文件名。
1.运行环境 本书7~10章所附代码的运行环境 Windows家族,.NET Framework 2.0及以上版本 IIS 5.0及以上版本 本书14~16章所附代码的运行环境 Windows家族,Apache 2.0及以上版本 PHP 5.0及以上版本 本书17~18章所附代码的运行环境 Windows家族,Tomcat JDK6.0 本书19~21章所附代码的调试环境 IE 6.0及以上版本 2.调试环境 本书7~10章所附代码的调试环境 Windows家族,.NET Framework 2.0及以上版本 Visual Studio 2005及以上版本、ASP.NET 2.0及以上版本 本书14~16章所附代码的调试环境 Windows家族,Apache 2.0及以上版本 PHP 5.0及以上版本 本书17~18章所附代码的调试环境 JDK6.0 Eclipse3.2+Lomboz 本书19~21章所附代码的调试环境 IE 6.0及以上版本 文本编辑器 3.本书所附光盘范例 第7章(/07/) DataTypeApplication/Default.aspx 检查和转换数据 第8章(/08/) StringApplication/StringDealwith.aspx 字符串处理 StringBuilderApplication/DealWithStringBuilder.aspx 动态字符串处理 第9章(/09/) RegexApplication/Default.aspx 正则表达式类的应用 RegexApplication/GetPageHtmlData.aspx 获取网页的内容 第10章(/10/) ASPNETValidator/Compare.aspx 比较验证 ASPNETValidator/CompareCheck.aspx 数据类型检查 ASPNETValidator/CompareValue.aspx 值比较验证 ASPNETValidator/CustomClient.aspx 自定义客户端验证 ASPNETValidator/CustomServer.aspx 自定义服务器端验证 ASPNETValidator/NotNull.aspx 非空验证 ASPNETValidator/NotNullInitValue.aspx 不等于初始化值的验证 ASPNETValidator/RangeDate.aspx 日期范围验证 ASPNETValidator/RangeInt.aspx 整数范围验证 ASPNETValidator/RangeLetter.aspx 字母范围验证 ASPNETValidator/REDate.aspx 日期格式验证 ASPNETValidator/REEmail.aspx 电子邮件格式验证 ASPNETValidator/REIdentity.aspx 身份证号码格式验证 ASPNETValidator/REInt.aspx 整数格式验证 ASPNETValidator/RENumber.aspx 数值格式验证 ASPNETValidator/REPhone.aspx 电话号码格式验证 ASPNETValidator/REUrl.aspx URL地址格式验证 ASPNETValidator/SummaryDialog.aspx 对话框式验证摘要 ASPNETValidator/SummaryPage.aspx 网页式验证摘要 第11章(/11/) 判断是否为对象.asp 判断是否为对象 判断是否为数值.asp 判断是否为数值 判断是否为数组.asp 判断是否为数组 判断是否为日期.asp 判断是否为日期 判断是否为空.asp 判断是否为空 判断是否为空值.asp 判断是否为空值 获取变量类型信息.asp 获取变量类型信息 第12章(/11/) 从中截取字符串.asp 从中截取字符串 切分字符串.asp 切分字符串 删除字符串前后导空格.asp 删除字符串前导空格.asp 删除字符串后导空格.asp 反向截取字符串.asp 反向查找字符串.asp 字符串倒序排列.asp 字符串大写转化.asp 字符串小写转化.asp 字符串替换.asp 将数组元素连接为字符串.asp 构造制定字符串.asp 正向截取字符串.asp 正向查找字符串.asp 获取字符串长度.asp 第13章(/14/) Matches集合与Macth对象.asp 指定忽略大小写.asp 获取Matches集合.asp 进行正则匹配替换.asp 进行正则匹配检验.asp 第14章(/14/) 浮点型数据测试.php 浮点型数据测试 字符串数据测试.php 字符串数据测试 数组数据测试.php 数组数据测试 对象测试.php 对象测试 数据类型识别.php 数据类型识别 强制类型转化.php 强制类型转化 计算圆周面积程序.php 计算圆周面积程序 字符串转化.php 字符串转化 数值转化.php 数值转化 数组转化.php 数组转化 第15章(/15/) 计算字符串的长度.php 计算字符串的长度 访问单个字符.php 访问单个字符 检索字符的位置.php 检索字符的位置 截取子字符.php 截取子字符 查找字符串出现的次数.php 查找字符串出现的次数 替换子字符串.php 替换子字符串 按照特定字符进行分割.php 按照特定字符进行分割 按照指定数目进行分割.php 按照指定数目进行分割 删除字符串的空白.php 删除字符串的空白 字符串的填补.php 字符串的填补 字符串大小写的转换.php 字符串大小写的转换 字符串的反转.php 字符串的反转 字符串按ASCII码顺序比较.php 字符串按ASCII码顺序比较 字符串按“自然排序”法比较.php 字符串按“自然排序”法比较 根据单词的发音比较.php 根据单词的发音比较 根据单词的相似性比较.php 根据单词的相似性比较 查找子字符串.php 查找子字符串 搜寻出现的字符.php 搜寻出现的字符 字符匹配.php 字符匹配 字符替换.php 字符替换 字符串翻译.php 字符串翻译 格式化数字.php 格式化数字 格式化表单字符串.php 格式化表单字符串 24.php 格式化字符串 25.php 格式化HTML实体 26.php HTML标签的清理 解析URL字符串.php 解析URL字符串 解析查询字符串.php 解析查询字符串 URL编码处理.php URL编码处理 查询字符串的构造.php 查询字符串的构造 第16章(/16/) 字符串模式匹配.php 字符串模式匹配 字符串大小模式匹配.php 字符串大小模式匹配 日期字符串模式匹配.php 日期字符串模式匹配 模式替换.php 模式替换 模式分割.php 模式分割 正则表达式匹配.php 正则表达式匹配 其他的正则表达式匹配.php 其他的正则表达式匹配 取得正则表达式的全部匹配.php 取得正则表达式的全部匹配 返回与模式匹配的数组单元.php 返回与模式匹配的数组单元 正则表达式的替换.php 正则表达式的替换 正则表达式的拆分.php 正则表达式的拆分 表单验证.php 表单验证 UBBCode.php UBB代码 ubb.html UBB代码输入界面 ubb.php UBB代码输出界面 Apache日志分析.php Apache日志分析 第17章(/17/) JSPExample1.jsp JSP页面中整型数据的使用 JSPExample2.jsp JSP页面中循环输出整型数据 JSPExample3.jsp 计算一光年的距离 JSPExample4.jsp JSP页面中计算圆的面积 JSPExample5.jsp JSP页面中字符数据的简单使用 JSPExample6.jsp 结合布尔类型变量判断学生成绩等级 JSPExample7.jsp text.html页面提交至该页,并显示提交数据 text.html 页面数据提交至JSPExample7.jsp JSPExample8.jsp 不同类型混合运算自动转换 JSPExample9.jsp 不同类型混合运算强制转换 JSPExample10.jsp 字符串类型与其他数据类型的转换 JSPExample11.jsp 解析字符串的子字符串 stringOP.html 页面数据提交至JSPExample12.jsp JSPExample12.jsp 字符串替换 JSPExample13.jsp 字符串大小写转换、反转等操作 logon.html 页面数据提交至JSPExample14.jsp JSPExample14.jsp 字符串数据的比较 JSPExample15.jsp 字符串数据的连接 JSPExample16.jsp 字符串数据的格式化 第18章(/18/) 1.jsp Pattern对象使用split方法示例一 2.jsp Pattern对象使用split方法示例二 3.jsp Matcher对象使用appendReplacement方法示例 4.jsp Matcher对象使用groupCount方法示例 5.jsp Matcher对象使用find方法示例 6.jsp Matcher对象使用group方法示例 7.jsp 字符串对象使用split方法 8.jsp Matcher对象使用replaceAll方法示例 9.html 页面数据提交至9.jsp 9.jsp 利用正则表达式验证邮箱地址 10.html 页面数据提交至10.jsp 10.jsp 利用正则表达式验证URL地址 11.html 页面数据提交至11.jsp 11.jsp 利用正则表达式验证电话号码 第20章(/20/) 从字符串中提取子串(1).html 从字符串中提取子串(1) 从字符串中提取子串(2).html 从字符串中提取子串(2) 从字符串中提取子串(3).html 从字符串中提取子串(3) 删除或替换数组中部分数据.html 删除或替换数组中部分数据 删除数组中最后一个元素.html 删除数组中最后一个元素 删除数组中的第一个元素.html 删除数组中的第一个元素 反序排列数组中的元素.html 反序排列数组中的元素 在字符串上加入超级链接.html 在字符串上加入超级链接 在字符串两端加上小字体标记.html 在字符串两端加上小字体标记 在字符串两端加入上标标签.html 在字符串两端加入上标标签 在字符串两端加入下标标签.html 在字符串两端加入下标标签 在字符串两端加入斜体标签.html 在字符串两端加入斜体标签 在字符串两端加入锚点标志.html 在字符串两端加入锚点标志 在字符串的两端加上固定宽度字体标记.html 在字符串的两端加上固定宽度字体标记 在字符串的两端加上粗体标志.html 在字符串的两端加上粗体标志 在字符串的两端加入下划线标记.html 在字符串的两端加入下划线标记 在指定字符串的两端加上大字体标志.html 在指定字符串的两端加上大字体标志 在数组前面插入数据.html 在数组前面插入数据 对数组中的元素进行排序.html 对数组中的元素进行排序 将一个或多个字符串连接到当前字符串的末尾.html 将一个或多个字符串连接到当前字符串的末尾 将字符串分割并存储到数组中.html 将字符串分割并存储到数组中 将字符串转化为大写格式.html 将字符串转化为大写格式 将字符串转化为小写格式.html 将字符串转化为小写格式 将指定的数据添加到数组中.html 将指定的数据添加到数组中 将数组元素连接为字符串.html 将数组元素连接为字符串 替换字符串中指定的内容.html 替换字符串中指定的内容 根据指定的Unicode编码返回一个字符串.html 根据指定的Unicode编码返回一个字符串 比较两个字符串的大小.html 比较两个字符串的大小 获取字符串的长度.html 获取字符串的长度 获取指定位置的字符的Unicode编码.html 获取指定位置的字符的Unicode编码 获取指定字符(串)第一次在字符串中出现的位置.html 获取指定字符(串)第一次在字符串中出现的位置 获取数组中的一部分数据.html 获取数组中的一部分数据 设置字符串输出时的前景色.html 设置字符串输出时的前景色 设置字符串输出时的字体大小.html 设置字符串输出时的字体大小 返回一个包含数组中全部数据的字符串.html 返回一个包含数组中全部数据的字符串 返回字符串中指定位置处的字符.html 返回字符串中指定位置处的字符 连接其他数组到当前数组末尾.html 连接其他数组到当前数组末尾 第21章(/21/) 判断字符串中是否存在匹配内容.html 判断字符串中是否存在匹配内容 对字符串进行匹配检测.html 对字符串进行匹配检测 替换字符串中的指定内容.html 替换字符串中的指定内容 编译正则表达式.html 编译正则表达式 获取与正则表达式进行匹配检测的字符串.html 获取与正则表达式进行匹配检测的字符串 获取匹配内容右侧的字符信息.html 获取匹配内容右侧的字符信息 获取匹配内容左侧的字符信息.html 获取匹配内容左侧的字符信息 获取匹配的内容的最后一个索引位置.html 获取匹配的内容的最后一个索引位置 获取子匹配的结果.html 获取子匹配的结果 获取字符串中所有的匹配信息.html 获取字符串中所有的匹配信息 获取最近一次匹配的内容.html 获取最近一次匹配的内容 获取最近一次匹配的最后一个子匹配.html 获取最近一次匹配的最后一个子匹配 获取第一次匹配的起始位置(1).html 获取第一次匹配的起始位置(1) 获取第一次匹配的起始位置(2).html 获取第一次匹配的起始位置(2)

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧