小编Kov*_*ovo的帖子

替换文件中的一行而不重写整个文件(在 PHP 中)

假设我有一个中等大小的文本文件(~850kb,10,000+ 行)

我想替换分布在文件中的特定行(或几行)。

当前执行此操作的方法包括重写整个文件。我当前使用的方法是逐行读取整个文件,写入 .tmp 文件,完成后,我将 tmp 文件 rename() 为原始源文件。

它有效,但速度很慢。当然,随着文件的增长,执行时间也会增加。

是否有另一种方法(使用 PHP)来完成工作,而不必每次需要替换或删除一两行时都重写整个文件?

谢谢!我环顾四周,在stackoverflow上找不到答案。

php fopen fwrite fread

4
推荐指数
1
解决办法
2553
查看次数

PHP通过引用传递

让我们假设如下:

private $array = array(/*really big multi-dimensional array*/);

public function &func1($specific_large_sub_array_key)
{
     return $this->array[$specific_large_sub_array_key]
}

public function func2()
{
    $specificArray = &$this->func1(1);

    $this->func3($specificArray);
}


public function func3($specificArray)
{
    /* do stuff here*/
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

如果func3没有指定$ specificArray没有通过引用传递,那么PHP在func2中调用func3时是否会复制$ specificArray?或者PHP保留引用并自动传播它?

即这......

public function func3($specificArray)
{
    unset($specificArray[234]);
}
Run Code Online (Sandbox Code Playgroud)

...影响$ array?

谢谢

注意,这个例子非常简单.

php

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

在函数声明的签名中在参数名称之前指定类名会有什么影响?

之间有什么区别:

public function init(a_class_name $classObj)
Run Code Online (Sandbox Code Playgroud)

public function init($classObj)
Run Code Online (Sandbox Code Playgroud)

不同之处在于示例1指定了我得到的对象类型.我的问题是:php仍然通过引用传递对象(默认行为)或者是示例1克隆对象的一些奇怪的快捷方式.我只是问,因为在更严格的语言(C,Java)中,示例1非常简单(并且是唯一可行的示例).在PHP中它并不那么清楚,并且这两种方法都在PHP文档的不同位置使用.

谢谢.

php

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

PHP Atomic Memcache

我想知道在我的网络应用程序中使我的Memcache操作atmoic的最佳方法是什么.

考虑以下场景:

Client 1 connects and retrieves data from key 1
Client 2 connects a few microsecond after Client 1, requests the same data from key 1
Client 1 saves new data to key 1
Client 2 saves new (different data) to key 1, not taking into account that Client 1 modified the value already
Run Code Online (Sandbox Code Playgroud)

在这种情况下,过程中没有原子性.

我的(潜在)解决方案是在我的应用程序中设置,获取和释放键上的锁.

因此,在我执行之后,上面的过程会像这样工作:

Client 1 connects, checks for an active lock on key 1, finds none, and gets the data
Client 2 connects a few …
Run Code Online (Sandbox Code Playgroud)

php memcached

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

标签 统计

php ×4

fopen ×1

fread ×1

fwrite ×1

memcached ×1