小编Cia*_*lty的帖子

超链接中不同端口号的相对URL?

如果我不知道主机名,有没有办法在没有Javascript /服务器端脚本的情况下链接到同一个盒子上的不同端口号?

例如:

<a href=":8080">Look at the other port</a>
Run Code Online (Sandbox Code Playgroud)

(这个例子不起作用,因为它只会对待:8080作为我要导航到的字符串)

html

126
推荐指数
7
解决办法
8万
查看次数

检测HTTP POST请求的字符编码

我正在构建一个Web服务,并且有一个接受POST的节点来创建新资源.资源需要两种内容类型之一 - 我将定义的XML格式或表单编码变量.

这个想法是消费应用程序可以直接POST XML并从更好的验证等方面受益,但是还有一个HTML接口将POST表单编码的东西.显然XML格式有一个charset声明,但我看不到如何通过查看POST来检测表单的charset.

Firefox中表单的典型帖子如下所示:

POST /path HTTP/1.1
Host: www.myhostname.com
User-Agent: Mozilla/5.0 [...etc...]
Accept: text/html,application/xhtml+xml, [...etc...]
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 41

field1=value1&field2=value2&field3=value3
Run Code Online (Sandbox Code Playgroud)

这似乎不包含任何有用的字符集指示.

从我所看到的,application/x-www-form-urlencoded类型完全在HTML中定义,它只是列出了%-encoding规则,但没有说明数据应该在什么字符集中.

基本上,如果我不知道HTML最初呈现的字符集,有没有办法告诉字符集?否则,我将不得不尝试根据字符存在来猜测字符集,而且总是有点不确定.

rest http http-headers

53
推荐指数
2
解决办法
12万
查看次数

最好使用私有方法还是受保护的方法?

在我的很多PHP项目中,我最终得到的是具有非公共函数的类,我不打算扩展它们.

最好将这些声明为受保护或私有?

我可以看到两种方式的参数 - 将它们设为私有是一种更为保守的方法,但可以认为如果我希望扩展方法并明确哪些方法由基类扩展,它们可以在以后被保护.

另一方面,使用私有部分反社会,因为它阻止理论上的未来开发人员扩展我的代码而不进行修改?

php oop

33
推荐指数
4
解决办法
5918
查看次数

将其他参数传递给Zend partialLoop View Helper

在Zend视图中,我可以将部分模板应用于可迭代元素,如下所示:

$this->partialLoop('template.phtml', $iterable);
Run Code Online (Sandbox Code Playgroud)

但是在模板中,只有$ iterable的元素可用,是否有另一种方法将额外的数据传递给部分?

php zend-framework

13
推荐指数
2
解决办法
7440
查看次数

具有长输出长度的PHP哈希函数?

在我的代码中,我正在生成URL的哈希值(实际上是无限长度).我目前正在使用sha1(),我知道它有一个很小的碰撞机会,但我有多达255个字节来存储哈希,所以我觉得我可以使用那个可用空间来降低碰撞的几率进一步.

有没有:

  1. 另一个具有更长或可自定义哈希长度的PHP哈希函数?
  2. 一种使用固定长度哈希函数(如sha1)和可变长度输入来生成更长哈希的方法?

或者,sha1的20字节哈希是否适合任何事情,我应该不再担心它了?

php hash

3
推荐指数
1
解决办法
3140
查看次数

Zend url查看助手 - 将现有的params保持在相反的路径中

目前在我的ZF项目中有一个像这样的URL结构:

/news/index/news_page/1/blog_page/2
Run Code Online (Sandbox Code Playgroud)

当我生成我的分页时,我使用URL帮助程序,如下所示:

<?php echo $this->url(array('blog_page'=>3)); ?>
Run Code Online (Sandbox Code Playgroud)

哪个生成这样的URL:

/news/index/news_page/1/blog_page/3
Run Code Online (Sandbox Code Playgroud)

我想做的是使用自定义路由来获得更好的URL,如下所示:

new Zend_Controller_Router_Route(
  'news/:news_page/:blog_page', 
  array('controller' => 'news', 'action' => 'index')
);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在视图助手中使用此路径时:

<?php echo $this->url(array('blog_page'=>3), 'newsIndex'); ?>
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误,因为我没有在params中指定news_page.

我怎样才能解决这个问题,并告诉网址助手使用这些参数的"当前"值?

php zend-framework url-routing

0
推荐指数
1
解决办法
9633
查看次数

标签 统计

php ×4

zend-framework ×2

hash ×1

html ×1

http ×1

http-headers ×1

oop ×1

rest ×1

url-routing ×1