小编zaf*_*zaf的帖子

自动检测内部/外部开发环境

我们使用以下函数自动检测我们是在机器内部还是在实时服务器上,然后为各种组件选择适当的配置:

function devIsLocal(){

    $res=false;

    $http_host=$_SERVER['HTTP_HOST'];

    if($http_host=='localhost')$res=true;
    if($http_host=='127.0.0.1')$res=true;
    if(substr($http_host,-4)=='.lan')$res=true;
    if(strpos($http_host, '.')===false)$res=true;

    return($res);

}
Run Code Online (Sandbox Code Playgroud)

如您所见,它仅依赖于HTTP_HOST值.

当然,如果您在本地使用某种类型的虚拟主机,例如example.com,那么该功能将被欺骗.

有没有其他方法来欺骗这个功能?还有哪些其他变量/地方可以用来确定我们的位置?

php development-environment production-environment autodiscovery

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

pathinfo vs fnmatch

关于fnmatch在pathinfo上的速度有一个小小的争论:如何检查文件是否是php?

我并不完全相信所以决定对两个功能进行基准测试.

使用动态和静态路径显示pathinfo更快.

我的基准逻辑和结论是否有效?

编辑:从cmd使用mac php

PHP 5.3.0(cli)(内置:2009年7月20日13:56:33)版权所有(c)1997-2009 PHP Group Zend Engine v2.3.0,版权所有(c)1998-2009 Zend Technologies

动态路径pathinfo 3.2973630428314 fnmatch 3.4520659446716 x1.05

static path pathinfo 0.86487698554993 fnmatch 1.0420439243317 x1.2

来自cmd的mac xampp php

PHP 5.3.1(cli)(内置:2010年2月27日12:41:51)版权所有(c)1997-2009 PHP Group Zend Engine v2.3.0,版权所有(c)1998-2009 Zend Technologies

动态路径pathinfo 3.63922715187 fnmatch 4.99041700363 x1.37

static path pathinfo 1.03110480309 fnmatch 2.38929820061 x2.32

我在我的机器上包含一个结果样本,以秒为单位进行100,000次迭代:

dynamic path
pathinfo 3.79311800003
fnmatch 5.10071492195
x1.34

static path
pathinfo 1.03921294212
fnmatch 2.37709188461
x2.29
Run Code Online (Sandbox Code Playgroud)

码:

<pre>
<?php

$iterations=100000;

// Benchmark with dynamic file path
print("dynamic path\n"); …
Run Code Online (Sandbox Code Playgroud)

php benchmarking pathinfo fnmatch

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

保存并恢复应用程序和布局

我正在寻找方法来减少浪费时间来打开所需的所有应用程序,定位窗口,打开网址/文件/更改目录等.在实际编码开始之前.

在完美的世界中,每个'项目'将有2个按钮标记为'SAVE STATE'和'RESTORE STATE'.您在某些游戏中找到的功能.

我在Mac上花了几个小时用'Automator'敲打我的头(由于某种原因甚至有问题甚至从码头打开火狐)然后是AppleScript(这让我感觉我很长时间骑了).

在网上搜索引导我到这个脚本:

http://snipt.net/Fotinakis/applescript-to-save-and-restore-window-positions/

#!/usr/bin/osascript

-- Usage:
-- $ osacompile -o windowPositions.compiled.scpt windowPositions.scpt
-- $ osascript windowPositions.compiled.scpt --save
-- $ osascript windowPositions.compiled.scpt --restore

-- Change this to be the list of windows you want to save/restore
property affectedProcesses : {"Chrome", "Adium", "Eclipse", "Terminal"}
property windowRecord : {}

on run argv
 if (count of argv) is equal to 0 then
  log "Please specify one of --save or --restore."
  return
 end if

 tell application "System Events"
  if (item 1 …
Run Code Online (Sandbox Code Playgroud)

windows macos desktop state

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

验证用户输入或

我们让用户从单个文本输入中搜索数据库,并且我在过滤一些用户提供的字符串时遇到了困难.

例如,如果用户提交:

????????? lcd SONY
Run Code Online (Sandbox Code Playgroud)

(注意?)我需要取消搜索.

我包括上面的字符串的base64编码版本,以便它运行:

print(base64_decode("1MfLxc/RwdPHIGxjZCBTT05Z"));
Run Code Online (Sandbox Code Playgroud)

我之前忽略了这些输入但是现在(我不知道为什么)只是意识到mysql数据库查询几乎永远执行所以现在这是高优先级.

另一个强调我们使用utf-8和mb_detect_encoding的例子没有多大帮助:

print(base64_decode("zqDOm8+Fzr3PhM63z4HOuc6/IM+Bzr/Phc+HzyU="));
????????? ?????%
Run Code Online (Sandbox Code Playgroud)

所以:

  • 如何检测/过滤这些输入?
  • 这个输入是如何生成的?

php unicode validation filter detect

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

假人的内存使用率很高

我刚刚重新启动我的firefox网络浏览器,因为它开始出现口吃和放慢速度.由于(我的理解)过多的内存使用,这种情况每隔一天发生一次.我注意到它启动时需要40M,然后,当我注意到减速时,它会升至1G,除非我关闭其他应用程序,否则我的机器无法提供.我试图理解为什么要解决这么难的问题背后的技术原因.

Mozilla有一个关于高内存使用量的页面:

http://support.mozilla.com/en-US/kb/High+memory+usage

但我正在寻找一个更深入和令人满意的解释.不是超级技术,但足以让这个问题更受尊重,请在这里取悦人群.

我已经在思考的一些问题(它们可能很愚蠢,所以放轻松):

  • 当我关闭所有标签时,为什么内存使用量不会一直下​​降?
  • 为什么扩展/主题/插件内存使用没有限制?
  • 如果长时间保持打开状态,为什么内存使用会增加?
  • 为什么内存泄漏如此难以找到并修复?

应用和语言不可知的答案也非常感谢.

c++ firefox memory-leaks memory-management

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

多米诺骨牌匹配算法

给定一些输入,包括左右符号,输出链连接输入.

想象一下,输入是多米诺骨牌,你不能水平翻转,需要把它们连在一起.创建大的循环链(忽略,如果你不能用真正的多米诺骨牌实际做到这一点)优于小型循环链,这种小型循环链优先于起点和终点不匹配的链.

我们正在寻找具有更多循环链(无论多少或链长)的输出.例如,3个圆形链的输出优于1个大链和剩余的单个多米诺骨牌.

有人能指出我正确的方向吗?这属于哪一组问题,是否存在解决此问题的现有算法?

示例(输出可能不正确!):

in[0]=(A,B)
in[1]=(B,C)
in[2]=(C,A)
out[0]=(0,1,2)

in[0]=(A,B)
in[1]=(B,A)
in[2]=(C,D)
in[3]=(D,C)
out[0]=(0,1)
out[1]=(2,3)

in[0]=(A,B)
in[1]=(B,A)
in[2]=(C,D)
in[3]=(E,F)
out[0]=(0,1)
out[1]=(2)
out[2]=(3)

in[0]=(A,B)
in[1]=(B,A)
in[2]=(C,D)
in[3]=(D,E)
out[0]=(0,1)
out[1]=(2,3)

in[0]=(A,B)
in[1]=(B,C)
in[2]=(C,D)
out[0]=(0,1,2)
Run Code Online (Sandbox Code Playgroud)

language-agnostic algorithm matching

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

数据库中所有表中的字段总数

我有一个包含数百个表的庞大数据库,我想找出所有表中定义的总字段(列).

有没有可以给我的SQL查询?如果没有,最好的方法是什么?

mysql sql database

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

"没有实例"错误

http://en.wikibooks.org/wiki/Haskell/Beginning为例

Prelude> let abs x = if x < 0 then -x else x
Prelude> abs 5
5
Prelude> abs -3

<interactive>:1:6:
    No instance for (Num (a0 -> a0))
      arising from the literal `3'
    Possible fix: add an instance declaration for (Num (a0 -> a0))
    In the second argument of `(-)', namely `3'
    In the expression: abs - 3
    In an equation for `it': it = abs - 3
Run Code Online (Sandbox Code Playgroud)

怎么了?

haskell ghci

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

sed's/this/that /' - 忽略g但仍然替换整个文件

正如标题所说,我试图只改变第一次出现的单词.通过使用sed's/this/that /'file.txt

虽然我没有使用g选项,但它会替换整个文件.如何解决这个问题.

更新:

$ cat file.txt 
  first line
  this 
  this 
  this
  this
$ sed -e '1s/this/that/;t' file.txt 
  first line
  this  // ------> I want to change only this "this" to "that" :)
  this 
  this
  this
Run Code Online (Sandbox Code Playgroud)

shell sed

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

只需找到服务器的IP地址即可

以下用于查找192.168.1.X主机服务器的实际本地IP地址(例如)的代码在开发机器上运行正常

$ip = getHostByName( getHostName() );
Run Code Online (Sandbox Code Playgroud)

将它传输到另一台服务器,它开始输出 127.0.0.1

似乎getHostName()返回由getHostByName()localhost转换为127.0.0.1哪个.

看看这里的其他问题似乎$_SERVER['SERVER_ADDR']可以解决这个难题,但这也是回归127.0.0.1

检查和搜索输出phpinfo()返回没有线索到机器的实际IP地址.

说真的,有没有人知道获得运行脚本的机器的IP地址的防弹(更简单,更好)的方法?为什么没有做翻转就很难获得这样的基础数据?

我真的不想在配置文件中硬编码IP地址......

php linux apache network-programming

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