小编Goo*_*bot的帖子

LOCK如何将日志写入平面文件?

读取平面文件的并发性几乎是无限的(如果我错了,请纠正我); 但是写入的并发性如何?考虑在PHP中编写一个简单的访问日志(用于访问),以附加一行以.结尾的访问详细信息\n

fopen(); // in append mode
fwrite();
fclose();
Run Code Online (Sandbox Code Playgroud)

由于我们有并发访问者,系统(一个用户是wbserver/php用户)如何同时写入视图日志?

我的困惑是:函数file_put_contents()(这是上述三个函数的包装)有一个lock(LOCK_EX)选项吗?使用这种锁定选项是否有益?这将如何影响日志写作?

更新:我的问题是关于LOCK最初如何工作/影响将日志写入文件.我不比较file_put_contentsfwrite; 甚至我的问题也不仅限于此PHP.问题是在写入过程中锁定文件.

php concurrency fopen flat-file fwrite

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

如何在Javascript中移动子元素来触发鼠标事件一次?

输入DOM元素时,mouseover将发生事件.在当前元素周围移动鼠标时,不会发生任何事件,就像mouseover输入一样.

但是,子节点不遵守此规则.如果将鼠标移到子节点上,mouseover则会一次又一次地触发事件,尽管没有新事件,因为我们仍然在原始父节点中.

看这个例子.如果我们将鼠标移到父项上(实际上是在其textNode上),则不会发生任何新的事情,但如果我们转到子元素(仍然在父元素上),它将mouseover一次又一次地触发事件.实际上,每次鼠标进入元素(甚至在原始父元素内)时,它都会触发鼠标事件.

我们如何才能使mouseover唯一一次移动到父母(原始元素addEventListener)?在给定的示例中,我的意思是避免在子元素上移动鼠标时触发事件.

javascript dom mouseover javascript-events addeventlistener

5
推荐指数
2
解决办法
1996
查看次数

如何在PostScript中将字符串拆分为数组

将字符串拆分为给定字符的最简单方法是什么?例如,通过分割空间来制作单词数组; 甚至可以创建字符串中所有字符的数组.

我能想到的唯一方法是search在循环中使用.因为,所有语言都有这个功能,我担心我会错过PostScript这样做的功能.

postscript

5
推荐指数
2
解决办法
1474
查看次数

如何调整EPS文件的BoundingBox?

我想裁剪一个PSPDF文件的主要区域来创建一个EPS没有空格的文件.的命令ghostrcipt,ps2pdf,epstools可以裁剪主绘图出来的文档文件.

问题是它们只能以原始形式裁剪,但我想创建一个EPS文件BoundingBox 0 0 x y; 裁剪并移动到左下角.

我们想要在PS文档中插入生成的EPS文件时的差异.具有时BoundingBox x0 y0 x y,PS文档在点x0 y0处插入EPS文件,而不是我们所在的位置.

例:

考虑一个简单的PS文件

%!
/Times-Roman findfont 
11 scalefont setfont

72 700 moveto
(This is a test)show
Run Code Online (Sandbox Code Playgroud)

如果EPS使用像这样的命令将其转换为

ps2eps test.ps test.eps
Run Code Online (Sandbox Code Playgroud)

它会产生

%!PS-Adobe-2.0 EPSF-2.0
%%BoundingBox: 72 700 127 708
%%HiResBoundingBox: 72.000000 700.000000 127.000000 707.500000
%%EndComments
% EPSF created by ps2eps 1.68
%%BeginProlog
save
countdictstack
mark
newpath
/showpage {} def …
Run Code Online (Sandbox Code Playgroud)

pdf postscript ghostscript eps

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

preg_split在PHP中有两个分隔符

如何合并两个分隔符preg_split?例如:

$str = "this is a test , and more";
$array = preg_split('/( |,)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);
print_r($array);
Run Code Online (Sandbox Code Playgroud)

会产生一个数组

Array
(
    [0] => this
    [1] =>  
    [2] => is
    [3] =>  
    [4] => a
    [5] =>  
    [6] => test
    [7] =>  
    [8] => 
    [9] => ,
    [10] => 
    [11] =>  
    [12] => and
    [13] =>  
    [14] => more
)
Run Code Online (Sandbox Code Playgroud)

但我想得到

Array
(
    [0] => this
    [1] =>  
    [2] => is
    [3] =>  
    [4] => a
    [5] =>  
    [6] …
Run Code Online (Sandbox Code Playgroud)

php arrays split preg-split

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

如何通过CSS在"相对"父级之外对齐未知高度的绝对DIV?

考虑一个使用html 的简单示例

<div class="parent">
    <div class="child">
    </div>
</div> 
Run Code Online (Sandbox Code Playgroud)

和CSS

.parent{
    position:relative;
    background:red;
    width:200px;
    height:40px;
}
.child{
    position:absolute;
    top:40px;
    left:30px;
    width:70px;
    height:70px;
    background:blue;
}
Run Code Online (Sandbox Code Playgroud)

在父母的正下方放置一个绝对位置的DIV(具有相对位置). 在此输入图像描述

在这个例子中,我将绝对值的顶部等于父亲的相对高度.

高度未知(父母和孩子)时,如何在父母的正下方对齐绝对DIV ?

html css position css-position

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

如何通过 JavaScript 获取文本的第 n 行?

考虑一个简单的 html 元素为

<div id="test">
a long text without line break
</div>
Run Code Online (Sandbox Code Playgroud)

浏览器将根据字形和字体大小创建线条。浏览器对文本进行排列后(例如根据窗口宽度),如何通过JavaScript获取文本的行数?

例如:

  1. 如何获得总行数
  2. 如何获取当前窗口中出现的第一行?
  3. 如何获得第n行?

javascript

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

PHP glob具有不区分大小写的匹配

glob用来寻找文件夹

$str = "Test Folder";
$folder = glob("$dir/*$str*");
Run Code Online (Sandbox Code Playgroud)

如何区分glob要匹配的文件夹,区分大小写?

匹配的测试文件夹TEST FOLDER

注意,这$str是脚本的未知输入!

php glob

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

如何忽略 shell_exec 中的错误?

我得到 PHP 中 shell 命令的输出:

$str = shell_exec("command");
Run Code Online (Sandbox Code Playgroud)

并在终端中运行 PHP 脚本。当shell command返回错误时,它将打印在终端上。如何判断shell_exec仅返回命令输出而不返回任何错误输出?

php error-handling shell-exec

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

如何触发MathJax?

我包含MathJax在脚本中

<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
Run Code Online (Sandbox Code Playgroud)

这会自动用格式化的标签替换所有数学代码.

  1. 如何MathJax仅通过javascript点击触发,而不是在加载时触发.
  2. 如何MathJax将格式化元素放在页面末尾而不是替换原始代码?

javascript mathjax

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