小编Eve*_*ert的帖子

http url中的%20和+是否相同?

我知道%20和+都解码为相同的二进制值(空格),对于大多数Web服务器,尤其是那些映射到物理文件的Web服务器,它们将指向相同的资源.

但我的问题是,必须像网址http://www.example.org/hello%20world指向相同的资源http://www.example.org/hello+world,是他们规范地一样的吗?

在HTTP/1.0 +中没有映射到空格,所以我特别询问HTTP/1.1.

http urlencode

10
推荐指数
1
解决办法
1785
查看次数

创建以人为本,非连续的唯一id的良好实践

我需要为用户创建一个唯一的ID.我不想使用auto_incrementing id,因为我不希望用户能够猜出我们拥有多少用户,或者增长率是多少.

UUID也不是一个选项,因为用户必须在智能手机上重新输入ID.

所以我希望我能尽可能地减少"强制"数据库以找到未使用的ID.什么是一个聪明的方法来解决这个问题?

谢谢!

php mysql

9
推荐指数
2
解决办法
3556
查看次数

Git和重定向

我注意到当一个git(html)项目页面如下:

https://github.com/fruux/sabre-dav
Run Code Online (Sandbox Code Playgroud)

以这种方式克隆:

git clone https://github.com/fruux/sabre-dav .
Run Code Online (Sandbox Code Playgroud)

列出的实际结果远程网址git remote -v是这样的网址:

origin  git@github.com:foo/sabre-dav.git
Run Code Online (Sandbox Code Playgroud)

大概是因为我有推送权限.

所以这让我想知道是否可以将任何给定的项目URL重定向到git存储库.例如http://myosproject.example.org,如果我拥有,是否可以允许git clone http://myosproject.example.org并实际上将其重定向到某个github项目.

git

9
推荐指数
1
解决办法
1万
查看次数

Tmux复制缓冲区限制

每当我从tmux缓冲区复制某些内容(通常使用鼠标),稍后将其粘贴到ViM中时,内容将被截断.最后的尝试只给了我大约750字节的我复制的完整块.

这是在Mac上的iTerm.

vim copy-paste iterm tmux

9
推荐指数
1
解决办法
2238
查看次数

PHP使用非拉丁文件名检测文件系统编码/保存文件

我需要使用PHP在文件系统上保存带有非拉丁文件名的文件.

我想让这项工作跨平台.我怎么知道我可以使用什么编码来编写文件?我知道许多现代文件系统都是基于UTF-8(这是正确的吗?),但我怀疑Windows XP(例如).

那么,是否有一个强大的检测机制?

php filesystems unicode

8
推荐指数
1
解决办法
2612
查看次数

两个事件触发时运行代码

这主要是与语言无关的问题.

如果我正在等待两个事件完成(例如,两个IO事件或http请求),那么处理此问题的最佳模式是什么.我能想到的一件事是以下(伪js例子).

request1.onComplete = function() {
  req1Completed = true;
  eventsCompleted();
}

request2.onComplete = function() {
  req2Completed = true;
  eventsCompleted();
}

eventsCompleted = function() {

  if (!req1Completed || !req2Completed) return;
  // do stuff

}
Run Code Online (Sandbox Code Playgroud)

这是最有效的模式,还是有更优雅的方法来解决这个问题?

javascript language-agnostic events

7
推荐指数
1
解决办法
191
查看次数

优雅地退出 go 应用程序

我是 Go 的新手,我有一些小服务正在运行。

当我部署一个新版本时,我通常只上传新的二进制文件、kill现有的进程并开始一个新的进程。

我想知道这是否是正确的做法,或者是否有更好的方法来做到这一点。

go

7
推荐指数
1
解决办法
3066
查看次数

使用HTTP PUT,但不完全替换实体

我正在开发一个REST api,我想知道以下内容:

我想使用HTTP PUT来更新webservice中的一些实体.格式将是一个urlencoded主体.仅更新实际指定的字段而不是整个实体是否可以接受?

我问,因为PUT是一个非常方便的方法来做一些更新,但我不希望它们删除字段,如果它们恰好拼错其中一些.另外,我不想强​​制实现者始终必须首先进行GET并复制他们可能实际上不使用的每个字段.

rest web-services http put

6
推荐指数
1
解决办法
2004
查看次数

Apache在发送304时忽略PHP头

当我在Apache + mod_php5中设置自定义标头时,这很好用:

header('Foo: Bar');
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这个同时发送304 Not Modified响应时,标题似乎被apache删除(与X-Powered-By和其他标准头文件一起).

header('HTTP/1.1 304 No Content');
header('Foo: Bar');
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

php apache http http-headers

6
推荐指数
1
解决办法
1684
查看次数

在ICS首选项中转义% - 我是否真的必须编写特定于版本的字符串处理?

我有一个在ICS上崩溃的应用程序.到目前为止工作得很好(虽然我不确定我是否真的有一个蜂窝平台可以测试,我们所有的测试手机都是姜饼或更低的,现在我有几个ICS手机可以玩).

我的首选项页面中的以下代码(从onResume和OnPreferenceChangeListener调用)工作正常:

protected void setBatteryAlarmSummary(String newValue){
    Preference batteryAlarm = (Preference) findPreference( getString(R.string.battery_low_alarm) );
    StringBuilder summary = new StringBuilder();
    summary.append(getString(R.string.battery_alarm_summary_label));
    summary.append(" ");
    summary.append(newValue);
    summary.append("%");
    batteryAlarm.setSummary(summary);
}
Run Code Online (Sandbox Code Playgroud)

这会将pref摘要设置为"10%的低电量警报".现在,有了ICS,它崩溃了.不是当它执行setSummary时,而不是当页面显示时,但是当你甚至稍微滚动首选项时,显然会触发渲染(这个项目大约有8个左右的项目,所以它在列表中"低于" ).修复ICS很简单,只需要忽略百分号:

summary.append("%%");
Run Code Online (Sandbox Code Playgroud)

然而,姜饼上的代码显示"低电池警报10 %%"

我可以根据版本编写它来改变,但那只是愚蠢的.他们是否真的打破了他们的首选项渲染的向后兼容性,或者这只是一个三星的东西(不幸的是,它是我现在唯一的ICS测试平台)?

string android escaping preferences

6
推荐指数
1
解决办法
450
查看次数