小编min*_*gos的帖子

CSS溢出:隐藏隐藏列表的子弹?

我刚刚发现了一些有趣的东西.假设我有一个HTML列表:

<ol>
    <li>Lorem</li>
    <li>ipsum</li>
    <li>dolor</li>
    <li>sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula.</li>
</ol>
Run Code Online (Sandbox Code Playgroud)

这个CSS:

li {
    white-space: nowrap;
    overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,最后一个项目中的长文本在离开容器的宽度时确实被删除了.但!列表项目编号也受overflow属性影响,不会显示.

但是,像这样修改CSS:

ol {
    overflow: hidden;
}
li {
    white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud)

按预期工作(文本不会出自容器,但会显示列表项).至少对于Firefox 4 beta10来说,这一切都是如此.

难道你不认为受此影响的编号overflow有点不合逻辑吗?为什么会这样?这是有意的行为吗?它是在规范中还是只是有些奇怪的人忘了处理?

html css overflow html-lists

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

将上传的图像放在公共文件夹中是否安全?

我刚刚与我的队友讨论过用户上传图片在图库中的位置.我希望对我们建议的方法有更广泛的了解.

我的队友写了一个控制器+动作,它调用file_get_contents放在一个文件夹中的图像文件,该文件夹不能用于公共浏览(即public_html服务器外部),并通过标题回显它.这是安全的,但由于我们使用Zend Framework,它也会慢速爬行 - 由于执行引导程序的查询,每次调用图像控制器都会花费大约500ms的延迟.这很烦人,因为图片库视图同时显示超过20个图像.

简而言之,相关代码将是:

class ImageController extends Zend_Controller_Action {
    public function showAction () {
        $filename = addslashes($this->_getParam('filename'));
        if(!is_file($filename)) {
            $filename = APPLICATION_PATH.'/../public/img/nopicture.jpg';
        }
        $this->_helper->viewRenderer->setNoRender(true);
        $this->view->layout()->disableLayout();
        $img = file_get_contents($filename);
        header('Content-Type: image/jpeg');
        $modified = new Zend_Date(filemtime($filename));
        $this->getResponse()
             ->setHeader('Last-Modified',$modified->toString(Zend_Date::RFC_1123))
             ->setHeader('Content-Type', 'image/jpeg')
             ->setHeader('Expires', '', true)
             ->setHeader('Cache-Control', 'public', true)
             ->setHeader('Cache-Control', 'max-age=3800')
             ->setHeader('Pragma', '', true);
        echo $img;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,在视图中,我们只需调用:

<img src="<?php echo $this->url(array('controller' => 'image', 'action' => 'show', 'filename' => PATH_TO_HIDDEN_LOCATION.'/filename.jpg')); ?>" />
Run Code Online (Sandbox Code Playgroud)

我有一个不同的方法:我更喜欢将原始图像保存在隐藏位置,但是一旦请求它们,将它们复制到公共位置并提供它的链接(使用额外的机制,由cron运行,擦除公共图像目录时不时地为了不浪费空间,并robots.txt告诉谷歌不要索引目录).该解决方案将文件(每个给定时刻的一些文件)放在一个可公开访问的目录中(如果知道文件名),但也只需要一个视图助手,因此不启动引导程序:

class Zend_View_Helper_ShowImage extends …
Run Code Online (Sandbox Code Playgroud)

php security zend-framework image

16
推荐指数
1
解决办法
3475
查看次数

选择选项中的zend表单自定义属性?

我想知道如何在Zend表单的选择字段中添加选项的自定义属性.

PHP:

$option_values = array("multiOptions" => array(
    "US" => "United States",
    "CA" => "Canada",
));

$type=array('big','small');
$option= new Zend_Form_Element_Select('option',  $option_values);
Run Code Online (Sandbox Code Playgroud)

HTML:

<select>
    <option value='US' type='big'>United States</option>
    <option value='CA' type='small'>Canada</option>
</select>
Run Code Online (Sandbox Code Playgroud)

如何在选项中添加此类型属性?

php zend-framework zend-form

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

php到C#转换器

我需要将这个PHP代码转换为C#.是否有工具或网站可以实现这一目标?

public function call($method, array $params) {
    // Add the format parameter, only 'json' is supported at the moment
    if (!array_key_exists('format', $params)) {
        $params['format'] = 'json';
    }

    $url = "{$this->_url}/{$method}";
    $ch = $this->_getCurlHandle($url);

    if (!$ch) {
        throw new Fuze_Client_Exception("Unable to create a cURL handle");
    }

    // Set the request parameters
    $queryString = http_build_query($params);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $queryString);

    // Fire!
    $result = $this->_executeCurl($ch);

    // All API response payloads should be valid json with 'code' and
    // 'message' members
    $json = json_decode($result);
    if …
Run Code Online (Sandbox Code Playgroud)

php c#

13
推荐指数
3
解决办法
6万
查看次数

Firefox 3.6.12 vs CSS box-model

自从我将FF更新到3.6.12(或者至少是我注意到这个问题的时候),我正处理一个不寻常的情况.虽然Chrome和Opera使用的是content-box盒子模型,但Firefox似乎已经开始使用了border-box.现在我正在设计一些表头,其高度为39px,底部为1px边框(总高度:40px).

它在任何地方都显示OK,除了FF,内容框高38px.

如果有任何用处,我使用的是Windows 7 Professional 32位,但在我的同事的电脑(Windows XP Professional)上也注意到了这一点.

我的CSS(简化了可读性)只是这个,没什么特别的:

table { border-spacing: 3px; }
table tr th { height: 39px; border-bottom: 1px solid red; }
Run Code Online (Sandbox Code Playgroud)

将box-model明确地设置为content-box没有任何效果,就好像border-box是在内部设置的!important......(有点像Chrome对自动填充表单字段背景的处理方式)

这个1像素的差异不会让我的造型分开(我不是让它像素完美),但我仍然对我的FF改变其行为感到不安.所以,我的问题是:

  1. 你的情况也会发生吗?(如果不是,那可能是我的CSS中的一些错误)
  2. 如果是这样,FF团队是否决定反对W3C并改变默认的箱型?
  3. 如果是这样,您是否碰巧知道为什么以及在哪里可以找到有关它的信息(Google拒绝提供帮助)?

css firefox

12
推荐指数
1
解决办法
2097
查看次数

为什么PHP和JavaScript在处理八进制和十六进制数时有问题?

我注意到PHP和JavaScript处理八进制和十六进制数字时遇到一些困难,同时键入juggling和cast:

PHP:

echo 16 == '0x10' ? 'true' : 'false'; //true, as expected
echo 8  == '010'  ? 'true' : 'false'; //false, o_O

echo (int)'0x10';    //0, o_O
echo intval('0x10'); //0, o_O
echo (int)'010';     //10, o_O
echo intval('010');  //10, o_O
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

console.log(16 == '0x10' ? 'true' : 'false'); //true, as expected
console.log(8  == '010'  ? 'true' : 'false'); //false, o_O

console.log(parseInt('0x10')); //16, as expected
console.log(parseInt('010'));  //8, as expected
console.log(Number('0x10'));   //16, as expected
console.log(Number('010'));    //10, o_O
Run Code Online (Sandbox Code Playgroud)

我知道,PHP有octdec()hexdec()功能补救八进制/十六进制的不当行为,但是我希望在intval() …

javascript php hex casting octal

11
推荐指数
1
解决办法
659
查看次数

事件回调的代码覆盖率

我使用Karma(目前为v.10.10)和Jasmine进行单元测试,使用Istanbul(通过karma-coverage)进行代码覆盖报告.我注意到在特定情况下代码覆盖率报告者的奇怪行为.

我试图测试的代码大致如下:

/**
 * @param {HTMLInputElement} element
 */
var foo = function(element) {
    var callback = function() {
        // some code
    };

    element.addEventListener("input", callback);
};
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我在被测元素上调度自定义输入事件并执行回调函数.测试检查回调的影响,测试通过.事实上,即使我console.log("foo")在回调中放了一个毛茸茸的东西,我也能清楚地看到它被打印出来了.但是,伊斯坦布尔的报告错误地表明回调根本没有执行.

修改测试代码以在事件监听器的回调中使用匿名函数修复了错误行为:

element.addEventListener("input", function() {
    callback();
});
Run Code Online (Sandbox Code Playgroud)

但是,我完全鄙视修改应用程序代码的"解决方案",以弥补代码质量控制工具的不足.

有没有一种方法可以让代码覆盖得到正确的选择而无需在匿名函数中包装回调?

javascript code-coverage callback karma-runner istanbul

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

操作系统独立剪贴板复制/粘贴C中的文本

我正在研究一个可以在Windows和Linux上工作的项目(还有一个非官方的Mac端口),可以模拟真正的色彩系统控制台.

我的问题是,最近出现了对文本字段支持的请求(是的,基于控制台),添加将文本复制到剪贴板并从中粘贴的可能性会很酷.有没有办法实现这一目标:

  • 用C语言(不是C++)完成,
  • 在Windows和Linux中工作(如果没有与平台无关的代码,预处理器宏是一个选项),
  • 不需要额外的库链接到?

在此先感谢您的帮助.

c clipboard

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

Emmet(前禅宗编码) - Aptana

我一直在尝试,通过许多不同的方式为aptana安装zen编码.

首先我去了Zen Coding项目托管,在谷歌上发现了一个奇怪的拉链,不同于每个演练所描述的.在多次演练之后,所有人都告诉我在zen编码githubs页面上寻找aptana插件.搜索了很长时间后,我找到了它,dev版本.然后添加为默认项目和东西,但它只是不起作用,它没有LIB文件夹,在许多教程中描述.

然后,最后,我尝试添加官方的Eclipse/Aptana插件,这是一个奇怪的插件.由于我不知道如何安装,只是尝试解压缩到aptana插件文件夹.然后,它出现在菜单脚本上但是当我执行ctrl + e时,它只是崩溃(禅编码).它抛出一个没有很多描述的错误.

我正在使用Aptana studio standalone 2

aptana emmet

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

检查数据库和/或表是否存在

我正在尝试使用Zend Framework编写一个简单的安装脚本.它应该运行一些测试:

  • 测试application.ini中指定的数据库是否存在(或者是否有访问权限).
  • 如果是,请测试user数据库中是否存在调用的表
  • 如果是,请检查是否有网站管理员用户

如果任何步骤失败,控制器将负责将用户重定向到安装过程的正确步骤.

我用以下代码创建了一个模型:

public function verify () {
    $db = $this->getDefaultAdapter(); //throws exception
    if ($db == null) return self::NO_BATABASE;
    $result = $db->describeTable('user'); //throws exception
    if (empty($result)) return self::NO_USER;
    $result = $db->fetchRow('SELECT * FROM user WHERE id = 1');
    if ($result == null) return self::USER_EMPTY;
    else return self::OK;
}
Run Code Online (Sandbox Code Playgroud)

但是,我高估了我使用过的功能.getDefaultAdapter()可能会返回null,但如果没有要连接的数据库,则会抛出异常.同样的情况发生describeTable(),抛出异常而不是返回一个空数组.

因此,我的问题是:如何检查数据库/表是否存在而不会出现异常或错误?

php sql database installer zend-framework

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