小编Eri*_*rik的帖子

C++释放静态变量

我希望我的类有一个静态指针指向动态分配的内存区域.我理解如何初始化它 - 在我的情况下,我将在第一个对象需要它时初始化它.但是,我不知道在代码中何时/何处释放它.我想在程序终止时释放它.

我可能能够在我的对象的析构函数中释放指针,但是我必须维护一个对象计数,以查看当对象是最后使用的对象时是否可以安全释放.

有没有更优雅的方式来做到这一点?

请告诉我.

谢谢,jbu

c++ memory free static destructor

25
推荐指数
3
解决办法
4万
查看次数

在perl中进行HTML解析

我正在尝试使用perl解析以下HTML结构.我需要选择包含类消息的所有dd元素以及id.我希望脚本要做的就是循环遍历所有dd元素并打印出dd元素的id,但它需要忽略第一个dd元素,因为它是静态的并且不会改变.

它可以与任何perl模块一起使用,只要它可以从cpan安装,以方便我.我对perl和解析html没有多少经验,所以任何指针都会非常有用.

谢谢 :)

HTML结构:

<pre><code>
<html>
<head>
</head>
<body>
 .....other elements
    <div id="messages">
        <div class="header"></div>
        <dl>
            <dd class="message unread mc-friend mc-message">This is just a random message, do not parse</dd>
            <dd id="msg2" class="message unread mc-message">
                Hello
            </div>
            <dd id="msg3" class="message unread mc-message">
                Hello
            </dd>
        </dl>
    </div>
</body>
</html>
</pre></code>
Run Code Online (Sandbox Code Playgroud)

html perl html-parsing

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

有没有办法在PHP中访问字符串作为文件句柄?

我在服务器上,我只限于PHP 5.2.6,这意味着我无法使用str_getcsv.我正在使用,而不是fgetcsv,它需要"一个有效的文件指针,指向由fopen(),popen()或fsockopen()成功打开的文件." 操作.

我的问题是:有没有办法将字符串作为文件句柄访问?

我的另一个选择是将字符串写入文本文件然后通过fopen()然后使用来访问它fgetcsv,但我希望有一种方法可以直接执行此操作,例如在perl中.

php csv filehandle

11
推荐指数
3
解决办法
7185
查看次数

PHP PDO:将数据作为对象获取 - 调用BEFORE __construct分配的属性.它是否正确?

完整的问题应该是"这是正确的还是我不能指望的一些错误?"

为什么这是正确的行为?

我一直在使用PDO,尤其是直接将数据提取到对象中.这样做我发现了这个:

如果我直接将数据提取到这样的对象:

$STH = $DBH->prepare('SELECT first_name, address from people WHERE 1');
$obj = $STH->fetchAll(PDO::FETCH_CLASS, 'person');
Run Code Online (Sandbox Code Playgroud)

并有一个像这样的对象:

class person {
  public $first_name;
  public $address;

  function __construct() {
    $this->first_name = $this->first_name . " is the name";
  }
}
Run Code Online (Sandbox Code Playgroud)

它告诉我在调用__construct之前正在分配属性 - 因为名称都附加了"是名称".

这是一些错误(在这种情况下,我不能/不会指望它)或这是它应该是的方式.因为它目前的工作方式真的很不错.

更新

显然,据其中一位维护者说,这不是一个bug.有人在2008年将其作为一个错误发布,回复是"它不是一个错误,阅读文档".

但是,我真的很想知道为什么这是正确的行为.

php pdo

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

mySQL/PHP实际发生了什么类型的错误

我正在使用mySQL开发基于Web的应用程序,我过去曾经使用过它.在开发过程中,我从未见过mySQL错误 - 即.形式不佳的选择 - 但一旦它'工作'有什么样的错误?

我从未见过插入或选择失败 - 他们可以吗?如果语法正确,为什么会这样?

我大多问这个问题,目的是弄清楚如果错误确实发生了怎么办.如果插入/更新失败,我会睡一秒再试一次吗?选择怎么样?在放弃之前多少次?

编辑:也许我问这个很糟糕,我正在寻找的是"如果我们出现问题,我该如何处理我的SQL错误?".在每个样本中,我都看到它只是死了 - 在一个看似非常难看的公共应用程序中.是否值得在几秒钟内重试该命令,然后向用户发送错误并通过电子邮件发送给管理员?或者只是接受致命错误无法修复.

php mysql

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

如何获取我知道在数组中唯一的键的索引

我有一个特定顺序的项目列表,所以我决定将它们存储在一个数组中

$items = array(
   "apple",
   "banana",
   "pear"
);
Run Code Online (Sandbox Code Playgroud)

如果使用参数"banana"调用程序,我需要能够说出"apple"之前和"pear"之后.目前我正在做这样的事情:

foreach($items as $k=>$v) { if ($v == "banana") { $current_key = $k }
Run Code Online (Sandbox Code Playgroud)

所以现在我知道$ current_key -1是先前的,而+1是下一个.它可以工作,只是感觉难以迭代整个数组.有一个更好的方法吗?

更新 如果有人关心,我决定做一些快速测试,看看获取信息的方式有多快.超过1000次迭代,在6000个项目的数组上,microtime重新调整:

我发布的方式:4.567 Array_Search:2.749

虽然我在想我也尝试了一种方法,将数据存储在一个数组数组中,如:

$items['banana']['next'] = 'pear';
$items['banana']['prev'] = 'apple';
Run Code Online (Sandbox Code Playgroud)

当然,这是英里(0.0005)的胜利者.这些都不是真的相关,我只是很好奇并且想与任何阅读此内容的人分享.

php arrays

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

标签 统计

php ×4

arrays ×1

c++ ×1

csv ×1

destructor ×1

filehandle ×1

free ×1

html ×1

html-parsing ×1

memory ×1

mysql ×1

pdo ×1

perl ×1

static ×1