小编Mic*_*ael的帖子

如何用PHP读取.tar.gz文件?

我正在构建一个系统供人们在PHP上传.tar(和.tar.gz,.tar.bz2,.zip等)文件.上传文件很好,但我想列出归档后包含在档案中的文件.

有人可以推荐一个可以读取文件档案的好的PHP库吗?

我在Pear上找到了File_Archive,但它在几年内没有更新.ZipArchive非常适合.zip文件,但我需要能够处理更多文件类型的东西.

更新我在RHEL6,PHP 5.2和Apache 2.2上运行.

php zip tar

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

Node.TEXT_NODE和IE7

我有一些javascript来测试DOM节点类型,如下所示:

        if(node.nodeType == Node.TEXT_NODE) {
Run Code Online (Sandbox Code Playgroud)

当然,它在Firefox,Safari和Opera中都运行良好.但是,Internet Explorer 7抱怨Node(使用大写N)是未定义的.但这是DOM Level 2的一部分!

我是否真的需要更改我的代码以使用幻数?或者我在这里想念一些简单的东西?

standards w3c dom internet-explorer-7

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

从节点确定文档顺序

如果我在HTML文档中有两个节点,如何使用DOM方法在Javascript中以HTML文档顺序排出哪个节点?

例如,

function funstuff(a, b) {
    //a and b can be any node in the DOM (text, element, etc)
    if(b comes before a in document order) {
        var t = b; b = a; a = t;
    }
    // process the nodes between a and b. I can handle this part 
    // when I know that a comes before b.
}
Run Code Online (Sandbox Code Playgroud)

html javascript dom

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

MySQL 错误 1032“无法在表中找到记录”

我昨天在dba.stackexchange.com上问了这个问题,但没有得到任何答复,所以我在这里尝试一下。

我的数据库中的某些查询出现 MySQL 1032“无法在‘person’中找到记录”错误,并且无法解决它们。

这是表格:

CREATE TABLE `person` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `last_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `first_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `dob` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`),
  FULLTEXT KEY `person_full_idx` (`last_name`,`first_name`,`title`)
) ENGINE=InnoDB AUTO_INCREMENT=4448 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

失败的查询是

SELECT * FROM person p0_
WHERE MATCH (p0_.last_name , p0_.first_name , p0_.title) AGAINST ('anne' IN …
Run Code Online (Sandbox Code Playgroud)

mysql full-text-search

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

长时间运行java进程

我继承了一个应该在Linux服务器后台运行的java系统.指示要求启动它java -jar start.jar.这对我来说似乎有点太脆弱了.我希望它实际在后台运行,理想情况下在启动时自动启动.

实现这一目标的最佳方法是什么?我已经考虑在一个screen环境中运行系统,它运行正常,但在系统重新启动时不会自动启动.

linux daemon startupscript

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

Perl的IO :: File并使用open qw(:utf8)

IO :: File-> open()似乎不尊重在下面的程序中使用open(),这对我来说很奇怪,似乎是对文档的反对.或许我做错了.重写我的代码不使用IO :: File应该不难.

我期待输出

$VAR1 = \"Hello \x{213} (r-caret)";

Hello ? (r-caret)
Hello ? (r-caret)
Hello ? (r-caret)
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:"糟糕:在./run.pl第33行打印时,格式错误的UTF-8字符(字符串意外结束)".

这根本不适合我.

#!/usr/local/bin/perl

use utf8;
use v5.16;
use strict;
use warnings;
use warnings qw(FATAL utf8);
use diagnostics;
use open qw(:std :utf8);
use charnames qw(:full :short);

use File::Basename;
my $application = basename $0;

use Data::Dumper;
$Data::Dumper::Indent = 1;

use Try::Tiny;

my $str = "Hello ȓ (r-caret)";

say Dumper(\$str);

open(my $fh, '<', \$str);
print while ($_ = $fh->getc());
close($fh);
print "\n"; …
Run Code Online (Sandbox Code Playgroud)

unicode perl perl-io

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

理解Java中的多态性

十多年来我没有编写任何Java代码.我很享受,但我不认为我得到了多态编程的一些细节.我有一个抽象的Node类,它有标记和数据子类(以及其他),我将它们存储在ArrayList中.

但是当我通过Iterator将它们从ArrayList中取出时,我得到了Node对象.我不确定如何最好地处理从迭代器返回的对象.

这是一个例子:

// initialize the list
TagNode tag = new TagNode();
ArrayList<Node> list = new ArrayList<>();
list.add(tag);
// And many more go into the list, some TagNodes, some DataNodes, etc.
Run Code Online (Sandbox Code Playgroud)

后来我使用迭代器来处理它们:

Iterator<Node> i = list.iterator();
Node n = i.next();
// How do I tell if n is a TagNode or a DataNode?
Run Code Online (Sandbox Code Playgroud)

我知道我可以转换到其中一个Node子类,但我怎么知道要使用哪个子类?我是否需要在Node类中嵌入类型信息?

java polymorphism

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