小编jnr*_*bsn的帖子

如何检查PHP流资源是可读还是可写?

在PHP中,如何检查流资源(或文件指针,句柄或您想要调用它们的任何内容)是可读还是可写?例如,如果您遇到的情况是您对资源的打开或创建方式一无所知,那么如何检查它是否可读?你如何检查它是否可写?

根据我所做的测试(只使用PHP 5.3.3的常规文本文件),fread()当资源不可读时,不会在任何级别抛出任何错误.它只返回一个空字符串,但它也为空文件执行此操作.理想情况下,最好选择不修改资源本身的检查.通过尝试从中读取资源来测试资源是否可读将改变指针的位置.

相反,fwrite()当资源不可写时,不会在任何级别抛出任何错误.它只返回零.这稍微有用一些,因为如果你试图将一定数量的字节写入文件并fwrite()返回零,那么你就会知道出了什么问题.但是,这仍然不是一种理想的方法,因为在我需要写入它之前知道它是否可写会更好,而不是试图写入它并查看它是否失败.

此外,理想情况下,检查应该适用于任何类型的流资源,而不仅仅是文件.

这可能吗?有这样的事吗?我一直找不到任何有用的东西.提前感谢您的回答.

php fopen fwrite fread

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

如何让CSS动画在停留时缓慢停止?

我有一个CSS动画,当我将鼠标悬停在它上面时无限旋转div.CSS看起来像这样:

@-webkit-keyframes rotate {
    from { -webkit-transform: rotate(0deg); }
    to { -webkit-transform: rotate(360deg); }
}

#square {
    background-color: #369;
    height: 100px;
    margin: 50px;
    width: 100px;
    -webkit-transform: rotate(0deg);
}

#square:hover {
    -webkit-animation: rotate 5s linear infinite;
}
Run Code Online (Sandbox Code Playgroud)

我试图解决的问题是,当我徘徊时,它会突然跳回原来的状态.当它处于动画中间时,这可能会不和谐.有没有办法慢慢过渡到原始状态?通常情况下,您可以使用过渡来执行此类操作,但它似乎不能与动画结合使用.例如,我尝试在上面的示例中添加-webkit-transition: all 2s;#square选择器,但它没有做任何事情.

示例:http://jsfiddle.net/93jeS/

css css3

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

无法从Jekyll插件获取页面数据

我正在尝试为Jekyll编写一个自定义标记插件,它将输出网站上所有页面(而不是帖子)的分层导航树.我基本上想要一堆嵌套<ul>的链接(页面标题作为链接文本)到页面,当前页面由某个CSS类标注.

我对红宝石很缺乏经验.我是一个PHP家伙.

我想我只是尝试迭代所有页面并输出一维列表,以确保我至少可以做到这一点.这是我到目前为止所拥有的:

module Jekyll

  class NavTree < Liquid::Tag
    def initialize(tag_name, text, tokens)
      super
    end

    def render(context)
      site = context.registers[:site]
      output = '<ul>'
      site.pages.each do |page|
        output += '<li><a href="'+page.url+'">'+page.title+'</a></li>'
      end
      output += '<ul>'

      output
    end
  end

end

Liquid::Template.register_tag('nav_tree', Jekyll::NavTree)
Run Code Online (Sandbox Code Playgroud)

我将它插入我的液体模板中{% nav_tree %}.

问题是page上面代码中的变量没有您期望的所有数据.page.title是未定义的,page.url只是在它前面带有正斜杠的基本名称(例如/a/b/c.html,它只是给我/c.html).

我究竟做错了什么?

旁注:我已经尝试用纯液体标记来做这个,我最终放弃了.我可以轻松地site.pages使用Liquid 进行迭代,但我无法找到适当嵌套列表的方法.

ruby liquid jekyll

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

为什么os.lseek()比类似文件的对象上的seek()慢?

在Python中,为什么os.lseek()文件类对象seek()上的方法慢得多?

$ dd if=/dev/urandom of=test.bin bs=1024 count=1024
1024+0 records in
1024+0 records out
1048576 bytes transferred in 0.063247 secs (16579072 bytes/sec)
$ python -m timeit -s 'import os; f = open("test.bin", "r")' 'for i in xrange(10000): f.seek(i, os.SEEK_SET)'
100 loops, best of 3: 2.62 msec per loop
$ python -m timeit -s 'import os; f = os.open("test.bin", os.O_RDONLY)' 'for i in xrange(10000): os.lseek(f, i, os.SEEK_SET)'
100 loops, best of 3: 4.23 msec per loop
Run Code Online (Sandbox Code Playgroud)

在 …

python macos python-2.7

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

标签 统计

css ×1

css3 ×1

fopen ×1

fread ×1

fwrite ×1

jekyll ×1

liquid ×1

macos ×1

php ×1

python ×1

python-2.7 ×1

ruby ×1