小编Pao*_*olo的帖子

获取当前脚本的绝对路径

我已经搜索了高低,并获得了许多不同的解决方案和包含信息的变量来获取绝对路径.但它们似乎在某些条件下工作而不在其他条件下工作.是否有一种银弹方式来获取PHP中执行脚本的绝对路径?对我来说,脚本将从命令行运行,但是,如果在Apache等中运行,解决方案应该也能正常运行.

澄清:最初执行的脚本,不一定是编码解决方案的文件.

php path include

238
推荐指数
11
解决办法
58万
查看次数

带有多个"server_name"条目的nginx"server"指令:始终将第一个传递给PHP的$ _SERVER ['SERVER_NAME']

我的配置文件有一个server以...开头的指令块

server {
    server_name www.example1.com www.example2.com www.example3.com;
Run Code Online (Sandbox Code Playgroud)

...为了允许使用不同的域名访问该站点.

但是,在这种情况下,PHP $_SERVER['SERVER_NAME']始终返回第一个条目server_namehttp://www.example1.com

所以我无法从PHP代码中知道用户用来访问该站点的域.

有没有办法告诉nginx/fastcgi传递用于访问该网站的真实域名?


到目前为止,我发现的唯一解决方案是server使用不同的server_name条目为每个域重复整个块,但显然我正在寻找更好的块.

php configuration fastcgi nginx

27
推荐指数
2
解决办法
3万
查看次数

RESTful API - 在请求中传递虚假/未请求参数时的正确行为

我们正在开发一个RESTful api,它以JSON编码数据的形式接受请求中的查询参数.

我们想知道当非请求/非预期参数与所需参数一起传递时,正确的行为是什么.

例如,我们可能要求给定端点上的PUT请求必须分别为密钥名称姓氏提供两个值:

{
    "name": "Jeff",
    "surname": "Atwood"
}
Run Code Online (Sandbox Code Playgroud)

如果虚假键也被传递,如下例中的颜色,该怎么办?

{
    "name": "Jeff",
    "surname": "Atwood",

    "color": "red"
}
Run Code Online (Sandbox Code Playgroud)

颜色的值不是预期的,也没有记录.

我们应该忽略它还是拒绝BAD_REQUEST 400状态错误的请求?

我们可以断言请求是坏的,因为它不符合文档.可能API用户应该被警告(她传递了价值,她会期待一些东西.)

但我们也可以断言请求可以被接受,因为所有提供的参数都可以满足.

api validation rest request http-status-code-400

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

避免将"Google地图"地图嵌入网页中以存储Cookie

我有一个简单的网站页面,其中嵌入了iFrame 的地图(来自谷歌地图).

<iframe src="https://www.google.com/maps/embed? .... ></iframe>
Run Code Online (Sandbox Code Playgroud)

小提琴为例.

将地图嵌入到页面中会导致Google的Cookie存储在客户端的浏览器中.

有什么办法可以避免吗?


为什么我问这个:

在欧盟,一个在用户设备上存储第三方cookie的网站需要获得用户的知情同意,并允许他/她自行决定阅读有关cookie和隐私的长文档.请参阅Cookies - 欧洲委员会

只使用会话cookie(非持久)一个网站要求取得知情同意.

有许多简单的网站,其目的只是为商业活动提供基本的在线存在,如餐馆,商店等.

通常这些网站只需要会话cookie(或根本不需要cookie).

然而,由于他们中的许多人使用嵌入式谷歌地图的地图来显示他们的位置,他们自动属于" 存储第三方cookie的网站 " 类别,并且必须遵守欧盟关于此的所有义务.我认为只是显示地图的开销太大了.

cookies iframe google-maps

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

C99:处理由`pow()`(溢出或复数)引发的异常的推荐方法是什么?

执行

double result = pow(base, exponent);
Run Code Online (Sandbox Code Playgroud)

任意baseexponent

可能导致尝试计算太大或太复杂的值.

例如base=-2,exponent=.5(-2的平方根)

如果我只是检查,如果result==NAN还是result==HUGE_VAL

该代码是否符合C99和跨平台?

c exception c99 nan pow

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

JSON响应对象:"漂亮"键和更大的响应或短键以及更小的响应?

我的实时Web应用程序生成ajax请求以获取JSON经济数据响应.

返回的数据通常是对象数组的形式.

由于数组通常有很多元素(虽然发送的数据是由服务器进行的,但是为了使响应大小保持最小),我仍然保持响应中的密钥非常短.

例如,而不是使用描述:我使用d:而不是使用宽度:我使用w:等等......

这样做会减小响应的大小,但是在客户端,非常短的非人类可读密钥会使JavaScript代码(访问对象)的可读性降低.

唯一的解决方案似乎是重新解析响应并使用漂亮的密钥重建对象,或者在接收的原始对象中替换它们.但这可能会损害JavaScript代码性能,从而导致更多延迟......

存在更好的解决方案?


编辑:

正如BjörnRobberg在评论中所说,我做了一个比较:

pretty-response.json       459,809 bytes
 short-response.json       245,881 bytes

pretty-response.json.zip    28,635 bytes
 short-response.json.zip    26,388 bytes
Run Code Online (Sandbox Code Playgroud)

因此,当服务器压缩响应时,差异实际上是微乎其微的.

仍然,漂亮的响应要求服务器压缩450 KB的数据,而短响应只需240 KB.

这是否会影响服务器性能(或者有没有办法测量它)?

javascript json

6
推荐指数
2
解决办法
1013
查看次数

Apple的SMC密钥描述

是否有SMC键的参考含义?

我找到了这个http://www.parhelia.ch/blog/statics/k3_keys.html

但它并不完整.

我特别感兴趣的是与温度传感器相关的键.

例如,在MacMini上,我得到了温度键:

TA0P    TC0P    TCSC    TM0S
TA0p    TC0c    TCSc    TM0p
TA1P    TC0d    TCTD    TMBS
TA1p    TC0p    TCXC    TP0P
TC0C    TC1C    TCXc    TP0p
TC0D    TC1c    TI0P    TPCD
TC0E    TCFC    TI0p    TPCd
TC0F    TCGC    TI1P    TW0P
TC0G    TCGc    TI1p    TW0p
TC0J    TCPG    TM0P    Tp0C
Run Code Online (Sandbox Code Playgroud)

macos

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

PHP 全局变量在请求之间保持不变

我需要一个全局变量来跨请求保持不变

我知道类似的问题PHP Persist variable across all requests但我担心哪种解决方案性能更好,因为变量是global必须为每个请求设置的。

目前我能想到的解决方案有

1. 将值存储到数据库中。

但每个请求都会对数据库产生更多的影响。

2. 将值存储到文件中

但每个请求都会到达文件系统。在 *nix 系统上,磁盘访问被缓存,因此进一步的读取应该从 RAM 进行,因此不会影响驱动器。

3. 将值存储到 php include 文件中,并将该文件包含在 Web 应用程序的主入口点处。

该文件而不是变量的原始值将包含define

define("THE_GLOBAL", "ABC");

与 (2) 相同的问题加上由于 php 缓存处于活动状态,因此可能会发生在缓存刷新之前该值实际上并未更新的情况。

4.像redis一样使用nosql

我不喜欢为此设置redis。另外,该变量必须在 Web 应用程序重新启动或系统重新启动后保持不变。实现这一点需要额外的工作。


我认为最好的解决方案是(2)。但也许我错了。

任何有有效论据支持的指示或建议都将非常受欢迎。

php performance global-variables

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

如何在 macOS 下检查文件是否正在复制

我们网络上的用户通过 AFP 连接将文件复制到服务器上名为“DropBox”的目录中,只需使用 Finder 拖动它们即可。

服务器上运行的脚本定期检查“DropBox”中是否存在新文件,然后使用mv将它们移动到其他目录中。

脚本如何检查文件是否正在被复制(并等待该过程完成后再将其移走)?

我尝试使用定影器文件名但没有成功。如果文件副本是由远程计算机发出的,fuser会报告没有进程正在使用该文件。

macos file fuser

5
推荐指数
1
解决办法
1512
查看次数

mysql 喜欢匹配字符串上的完整单词或单词开头

给定一个搜索字符串,我需要选择每条记录(在执行搜索的字段中)至少有一个以给定文本开头的单词。

例如:

'John Doe'
Run Code Online (Sandbox Code Playgroud)

必须使用搜索字符串进行选择,例如:

'joh'
'do'
'JOHN doe'
Run Code Online (Sandbox Code Playgroud)

不必选择

'ohn'
'oe'
Run Code Online (Sandbox Code Playgroud)

我需要(可能)避免全文搜索。

我发现有效的是

$query = 'SELECT * FROM MYTABLE WHERE SEARCHFIELD LIKE "' . $searchText . '%"'
                                . 'OR SEARCHFIELD LIKE "% ' . $searchText . '%"'
Run Code Online (Sandbox Code Playgroud)

我想问是否有更好的方法来做到这一点。

(对于“更好的方式”,我的意思是更好的性能相同的性能但更优雅

另外,由于查询将使用准备好的语句构建,因此我应该如何对搜索字符串中的LIKE元字符进行转义?

mysql sql-like

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