PHP网页主要技术要点,php以及前端的一些小小的技术要点

1. php提供界面,从HBase服务端下载二进制文件。

方案:为了降低系统之前的耦合,前台与后台采取rpc交互方式。采用Thrift封装一个服务,提供下载接口。由于从HBase中读出来就是二进制流,所以php端的Thrift client可以直接接收二进制然后定通过http直接传输到浏览器端。

具体实现方式:

Thrift中有个类型叫做binary,所以这是个突破口。

binary dk_downLoadFileBytes(1:string id)//接口定义

HBase端是byte[] 类型作为该接口的返回值(Java)。php端直接可以将接收的二进制定向到网页,代码如下:

$client = new MyClient;//这个客户端封装了Thrift接口。

$client->connect();

$file = $client->download($docid);//下载文件,接收二进制

$client->close();

//下载配置代码

header("Content-Encoding: none");

header("Content-type: application/octet-stream");

header("Accept-Ranges: bytes");

header("Content-Transfer-Encoding: binary");

//这里需要注意,如果不加上双引号的转义符号,firefox浏览器会不支持包含空格的文件名,会造成下载文件名的切断。

header("Content-Disposition: attachment; filename=\"".$filename."\"");

header('Pragma: no-cache');

header('Expires: 0');

//这里要注意,如果不加后面这两句,下载word文件时,打开会出现乱码。需要清空并刷新输出缓冲区。

ob_clean();

flush();

echo $file;//这时就可以下载了,浏览器会弹出窗口。

2. 文本框以及URL(地址栏中)显示特殊某些符号

文本框这个没什么好说的,文本框显示一些特殊符号需要做一些转义处理。比如双引号是quot;

在地址栏中,我们有时候可能会把一些特殊的符号传到下一个页面,然后期望在下一个页面中显示。比如'+'号。这个符号在地址栏中会被转义为%B,而字符串中的空格在地址栏中会显示成+号。比如我们有两个网页a.php和b.php。a.php中有个a标签想要连接到b.php,其中有个参数为str,值为“+” 。我们希望在网页B中正常的显示“+”。所以就要这样一下:str_replace('"','"',str_replace('+','%2B',$myString));。

3. jquery 传递中文字符串出现乱码的问题。

js ajax端: encodeURI(‘your val’);

php端: urldecode($val);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值