小编nic*_*ckf的帖子

使用PHP替换纯文本变量的最佳方法

采用包含PHP样式变量的纯文本(不是PHP代码),然后替换变量值的最佳方法是什么.这有点难以描述,所以这是一个例子.

// -- myFile.txt --
Mary had a little $pet.

// -- parser.php --
$pet = "lamb";
// open myFile.txt and transform it such that...
$newContents = "Mary had a little lamb.";
Run Code Online (Sandbox Code Playgroud)

我一直在考虑使用正则表达式,或者也许eval(),虽然我不确定哪个最简单.这个脚本只会在本地运行,因此对安全问题的担忧eval()并不适用(我认为?).

我还要补充一点,我可以使用以下方法将所有必要的变量放入数组get_defined_vars():

$allVars = get_defined_vars();
echo $pet;             // "lamb"
echo $allVars['pet'];  // "lamb"
Run Code Online (Sandbox Code Playgroud)

php variables substitution

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

存储少量图像:blob还是fs?

我正在为我的网站添加一些功能,以便用户可以上传他们自己的个人资料图片,所以我想知道是将它们作为BLOB存储在数据库中,还是将它们放在文件系统中.

我在这里找到了一个类似的问题:在DB中存储图像:Yea或Nay,但给出的答案更倾向于人们期待数千甚至数百万的图像,而我更关心的是小图像(JPEG图像直到可能是150x150像素),而且数量很少:可能高达一两千.

对于这种情况,DB BLOB vs Filesystem有什么感受?客户端如何使用来自DB和文件系统的缓存映像?

如果存储在数据库中的BLOB是要走的路-有什么我应该知道哪里来存储它们?由于我想我的大多数用户都不会上传图片,我是否应该在需要时创建一个user_pics表(外部)连接到常规users表?


编辑:我正在重新打开这个问题,因为它与你链接的那两个重复.这个问题具体是关于使用DB或FS来处理少量图像的优缺点.正如我上面所说,另一个问题是针对需要存储数千个大图像的人.

database blob image

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

将格式应用于unix shell

我最近一直在查看一些服务器日志tail -f,并且认为如果我可以格式化输出,那么看起来要容易得多.真正我正在寻找的是一种可能为某些单词着色的方法(由正则表达式确定),并且可能删除某些单词(再次由正则表达式确定).

知道 有些程序可以实时显示服务器日志和诸如此类的东西,但我对此更感兴趣.

logging tail

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

图像alt属性最佳做法

标签上alt属性的预期用途到底是什么<img>

它应该描述图像,还是应该为屏幕阅读器(以及关闭图像的人)提供有意义的替换文本?

例如,如果我在我的网站上有一个人的简短传记,并且包含一张他们的小照片,那么视觉障碍用户是否真的有意义地向他们宣读"约翰史密斯的照片"?

html accessibility

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

存储对DOM元素的引用

在我写的一个特定脚本中,我有许多链接到某些DOM元素的对象.假设每个元素都有唯一的id,每个对象应该只保留元素的id(并且每次都使用document.getElementById),还是将元素存储在属性中?

这是我的意思的简化示例:

function myThing(elId) {
    this.elId = elId;
}
myThing.prototype.getElValue = function() {
    return document.getElementById(this.elId).nodeValue;
};

// -- vs -- //

function myThing(elId) {
    this.el = document.getElementById(elId);
}
mything.prototype.getElValue = function() {
    return this.el.nodeValue;
};
Run Code Online (Sandbox Code Playgroud)

它有什么不同吗?我应该知道有任何性能问题吗?

javascript dom reference

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

不推荐使用jQuery.browser,但是如何使用.support?

在我的网页上,我有这个CSS:

tr:hover {
    background-color: #f0f;
}
Run Code Online (Sandbox Code Playgroud)

除了好的旧IE之外,它在所有浏览器中都能很好地工作.我知道我可以写一些jQuery来添加和删除鼠标上/下的一个类,但我不想让所有其他支持:hover正确的浏览器出现问题- 所以我只想应用这个浏览器的JS行为本身不支持纯CSS解决方案.

当然,我们都知道这$.browser已被弃用了,而且我们都知道浏览器嗅探是一件坏事,SO上的所有其他问题都有大量的答案,就像"你不应该检查浏览器,检查为特征 ",而这一切都很好,当这些人生活的神奇仙境,但我们其他人需要得到我们的网站工作,看着对面IE6和其他浏览器确定.

$.support IE6和7看起来像这样:

leadingWhitespace: false
tbody:             false
objectAll:         false
htmlSerialize:     false
style:             false
hrefNormalized:    false
opacity:           false
cssFloat:          false
scriptEval:        false
noCloneEvent:      false
boxModel:          true
Run Code Online (Sandbox Code Playgroud)

我到底该如何使用这些属性来确定是否tr:hover有效?

是的我知道在这个例子中,它是相当无害的,我可能可以通过不向IE用户提供该功能,或者通过在所有浏览器中模拟它来逃避,但这不是重点.$.browser当你$.support没有接近替换它时,你应该如何停止使用?

jquery cross-browser sniffing

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

嵌套jQuery sortables的问题

这是我的页面的基本HTML结构:

<div id="selectedItemsTop">
    <ul>
        <li>
            Root element
            <ul>
                <li>Level One a</li>
                <li>Level One b</li>
                <li>
                    Level One parent
                    <ul>
                        <li>Level Two a</li>
                        <li>
                            Level Two parent
                            <ul>
                                <li>Level Three a</li>
                                <li>Level Three b</li>
                            </ul>
                        </li>
                        <li>Level Two b</li>
                    </ul>
                </li>
                <li>Level One c</li>
            </ul>
        </li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

例如:

  • 根元素
    • 一级a
    • 一级b
    • 一级父母
      • 二级a
      • 二级父母
        • 三级a
        • 三级b
      • 二级b
    • 一级c

在每个缩进级别可以有超过根的任意数量的项目,但是每个级别只有3个级别,并且每个级别只有一个父级(即:<ul>根目录下总是正好3 秒,但是<li>s 的数量是可变的) .

我允许用户使用jQuery UI Sortable插件重新排序此结构.要添加新项目,有三组项目(第一级项目,第二级项目,第3级项目),它们位于此树的页面上.用户可以从那里拖动到列表中来添加它 - 但必须在相应级别添加它.

我有这个工作已经在使用draggable与该connectToSortable选项:

$('ul.availableItems').each(function(i) {
    var selector …
Run Code Online (Sandbox Code Playgroud)

jquery internet-explorer jquery-ui

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

PHP分叉和多个子信号

我正在尝试编写一个脚本,该脚本使用这些pcntl_*函数创建了许多分叉的子进程.

基本上,有一个脚本在循环中运行大约一分钟,定期轮询数据库以查看是否有要运行的任务.如果有一个,它应该在一个单独的进程中分叉并运行该任务,以便父进程不会被长时间运行的任务阻止.

由于可能有大量任务准备好运行,我想限制创建的子进程数.因此,我通过在每次创建变量时递增变量来跟踪进程数(然后暂停,如果有太多),然后在信号处理程序中递减它.有点像这样:

define(ticks = 1);

$openProcesses = 0; // how many we have open
$max = 3;           // the most we want open at a time

pcntl_signal(SIGCHLD, "childFinished");

while (!time_is_up()) {
    if (there_is_something_to_do()) {
        $pid = pcntl_fork();
        if (!$pid) {      // I am the child
            foo();        //   run the long-running task
            exit(0);      //   and exit
        } else {          // I am the parent
            ++$openProcesses;
            if ($openProcesses >= $max) {
                pcntl_wait($status);    // wait for any child to …
Run Code Online (Sandbox Code Playgroud)

php fork process

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

从Ruby中包含的文件中访问变量

如何访问包含文件中定义的变量?

# inc.rb
foo = "bar";


# main.rb
require 'inc.rb'
puts foo

# NameError: undefined local variable or method `foo' for main:Object
Run Code Online (Sandbox Code Playgroud)

ruby include

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

转义gitconfig文件中的别名命令

我正在尝试向我的gitconfig文件添加别名命令,并在我添加的行上报告"错误的配置文件".我怀疑它与sed命令和一些逃避问题有关,但我不确切知道它应该是什么.这是命令,为易读性添加了换行符:

impact = !git ls-files -z
       | xargs -0n1 git blame -w -C
       | sed -r 's/^[^(]+\((.*) [0-9]{4}-.*/\1/'
       | sed -r 's/ +$//'
       | sort -f
       | uniq -c
       | sort -nr
Run Code Online (Sandbox Code Playgroud)

git git-config

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