小编cmb*_*ley的帖子

詹金斯vs特拉维斯-CI.您将在开源项目中使用哪一个?

对于我的项目,我需要在Jenkins和Travis-CI之间做出选择.我多年来一直在使用Jenkins,但我也读过关于Travis-CI的好评.

您将在开源项目中使用哪一个?两者的主要好处或优点是什么?

continuous-integration jenkins travis-ci

263
推荐指数
3
解决办法
12万
查看次数

PHP DOMDocument loadHTML没有正确编码UTF-8

我正在尝试使用DOMDocument解析一些HTML,但是当我这样做时,我突然失去了编码(至少这对我来说是这样).

$profile = "<div><p>various japanese characters</p></div>";
$dom = new DOMDocument();
$dom->loadHTML($profile); 

$divs = $dom->getElementsByTagName('div');

foreach ($divs as $div) {
    echo $dom->saveHTML($div);
}
Run Code Online (Sandbox Code Playgroud)

这段代码的结果是我得到了一堆不是日语的字符.但是,如果我这样做:

echo $profile;
Run Code Online (Sandbox Code Playgroud)

它显示正确.我尝试过saveHTML和saveXML,但都没有正确显示.我使用的是PHP 5.3.

我所看到的:

ã¤ãªãã¤å·ã·ã«ã´ã«ã¦ãã¢ã¤ã«ã©ã³ãç³»ã®å®¶åº­ã«ã9人åå¼ã®5çªç®ã¨ãã¦çã¾ãããå½¼ãå«ãã¦4人ã俳åªã«ãªã£ããç¶è¦ªã¯æ¨æã®ã»ã¼ã«ã¹ãã³ã§ãæ¯è¦ªã¯éµä¾¿å±ã®å®¢å®¤ä¿ã ã£ãã髿 ¡æä»£ã¯ã­ã£ãã£ã®ã¢ã«ãã¤ãã«å¤ãã¿ãæè²è³éãåããªããã«ããªãã¯ç³»ã®é«æ ¡ã¸é²å­¦ã
Run Code Online (Sandbox Code Playgroud)

应该展示什么:

???????????????????????9????5???????????????4???????????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

编辑:我已将代码简化为五行,以便您自己测试.

$profile = "<div lang=ja><p>???????????????????????</p></div>";
$dom = new DOMDocument();
$dom->loadHTML($profile);
echo $dom->saveHTML();
echo $profile;
Run Code Online (Sandbox Code Playgroud)

这是返回的html:

<div lang="ja"><p>イリノイ州シカゴã«ã¦ã€ã‚¢ã‚¤ãƒ«ãƒ©ãƒ³ãƒ‰ç³»ã®å®¶åº­ã«ã€</p></div>
<div lang="ja"><p>???????????????????????</p></div>
Run Code Online (Sandbox Code Playgroud)

php utf-8 character-encoding

174
推荐指数
8
解决办法
9万
查看次数

哪个最快?SELECT SQL_CALC_FOUND_ROWS FROM`table`或SELECT COUNT(*)

当您限制通常在分页中使用的SQL查询返回的行数时,有两种方法可以确定记录总数:

方法1

SQL_CALC_FOUND_ROWS在原始文件中包含该选项SELECT,然后通过运行获取总行数SELECT FOUND_ROWS():

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();  
Run Code Online (Sandbox Code Playgroud)

方法2

正常运行查询,然后通过运行获取总行数 SELECT COUNT(*)

SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;  
Run Code Online (Sandbox Code Playgroud)

哪种方法最好/最快?

mysql optimization

171
推荐指数
6
解决办法
12万
查看次数

php json_encode&jquery parseJSON单引号问题

我搜索并阅读了大部分相关主题,但它们并不是我想要的.

我有一个带有json_encodePHP函数的JSON enocded字符串:

{"casts":["Matthew Modine","Adam Baldwin","Vincent D'Onofrio"],"year":1987}
Run Code Online (Sandbox Code Playgroud)

我正在使用jQuery将值放在适当的字段中,在测试的情况下我做了以下操作:

<script>
var obj = jQuery.parseJSON('<?=$data?>');
console.log(obj);
</script>
Run Code Online (Sandbox Code Playgroud)

假设$ data是这样的:

$data =
<<<END
{"casts":["Matthew Modine","Adam Baldwin","Vincent D'Onofrio"],"year":1987}
END;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,Google Chrome控制台会生成什么:

Uncaught SyntaxError: Unexpected identifier 
Run Code Online (Sandbox Code Playgroud)

但是,当我对JSON编码的字符串进行更改时 - 将反斜杠添加到单引号:

{"casts":["Matthew Modine","Adam Baldwin","Vincent D\'Onofrio"],"year":1987}
Run Code Online (Sandbox Code Playgroud)

控制台输出正常:

Object {casts: Array[3], year: 1987}
casts: Array[3]
year: 1987
Run Code Online (Sandbox Code Playgroud)

问题是:控制台中的这个错误是预期的吗?我想逃避或更换'\'会这么脏!

更新

实际上$ data数据来自a json_encode($var)而$ var是一个数组!

$data = json_encode($var);
Run Code Online (Sandbox Code Playgroud)

php jquery

36
推荐指数
4
解决办法
5万
查看次数

从每个子数组中获取特定元素

我有一个共同的模式,我确信在PHP中必须有一个内置的数组函数来处理,但只是看不到它.

我有多个数组,如下所示:

$testArray = array (
    'subArray1' => array(
        'key1' => "Sub array 1 value 1",
        'key2' => "Sub array 1 value 1"
    ),
    'subArray2' => array(
        'key1' => "Sub array 2 value 1",
        'key2' => "Sub array 2 value 2"
    )
);
Run Code Online (Sandbox Code Playgroud)

我需要key1从每个subArray 获取值,其中可以有任何数字.

我总是最终只是循环遍历每个数组以获得所需的值,但我确信必须有一种更简单,更有效的方法来处理它.

我目前正在使用以下简单的foreach来解析数组:

$preparedSubs = array();

foreach($testArray as $subArray) {
    $preparedSubs[] = $subArray['key1'];
}
Run Code Online (Sandbox Code Playgroud)

它尽可能短,但正如我所说,我确信有一个PHP结构可以更好地处理它.

php arrays

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

Grep:获取没有匹配行的所有文件

这可能是重复的,因为我相信我已经看到了类似的东西但是找不到它所以我问:

我有很多具有多行的文件,在大多数情况下,其中一行包含某个patern.我想让每个文件都没有这个patern的行.

编辑:只需要使用"-L"grep选项.这是重复的,我敢肯定,但没有找到原来的背...

grep file

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

416请求范围不满意

上下文:我使用的是名为Social Engine的软件包.这是非常错误的.

无论如何,我要求(甚至支付)社交引擎的人进行升级,当他们最终这样做时,我登录了网站,发现这些风格都缺失了.我打开了一张支持票,所有他们告诉我的是这是416错误并联系我的ISP.

通过测试位于软件中可写文件夹中的CSS文件的直接链接,可以发现此错误.

http://ministersdev3.themonastery.org/application/css.php?request=application/themes/monastery-theme/theme.css&c=6

我开始做我的研究只发现这是一个非常罕见的错误,我看不到任何关于在我的Ubuntu 10.10 Linode服务器(运行安装了APC扩展的最新Apache和PHP5)上关闭转向范围的建议.也许这是一个软件问题?有些APC的缓存工作正常吗?我将此软件中的缓存重置为60秒,并确保它使用的是APC.仍然没有骰子.

这是他们的软件可能正在做的事情,我需要考虑修补?

apache http http-headers ubuntu-10.10

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

转换' 在PHP中使用撇号

我的数据中有许多HTML实体(&bull;...等),包括&apos;.我只是想把它转换为它的等价字符.

我假设htmlspecialchars_decode()会起作用,但是 - 没有运气.思考?

我试过这个:

echo htmlspecialchars_decode('They&apos;re here.');
Run Code Online (Sandbox Code Playgroud)

但它返回: They&apos;re here.

编辑:

我也尝试过html_entity_decode(),但它似乎不起作用:

echo html_entity_decode('They&apos;re here.')
Run Code Online (Sandbox Code Playgroud)

还返回: They&apos;re here.

html php decode special-characters

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

可以克隆PHP生成器吗?

在PHP文档中,它说:

然而,这种灵活性需要付出代价:生成器只是前向迭代器,一旦迭代开始就无法重绕.这也意味着同一个生成器不能多次迭代:生成器需要通过再次调用生成器函数来重建,或者通过clone关键字克隆.文档

但是我尝试编写一个克隆我从方法收到的生成器对象的代码,并且我收到一个错误,指出无法克隆生成器对象:

class Course {
    private $students = array("avi" , "haim" , "maor" , "liran" , "yossi");

    function generateStudents() {
        foreach ($this->students as $student) {
            yield $student;
        }
    }
}

$ob = new Course();
$generator = $ob->generateStudents();

// Fatal error: Trying to clone an uncloneable object of class Generator
$generator2 = clone $generator;

?>
Run Code Online (Sandbox Code Playgroud)

php oop clone generator

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

IDNA转换域名的最大长度是多少?

首先要做的事情:

在我将每个域名转换为IDNA版本之后,我将多个域存储到数据库中.我需要知道这样一个IDNA转换域名的最大长度,以便我可以定义数据库字段的最大长度.

已知事实:

现在,我知道域名(包括任何子域)中的最大字符数为255个字符.

我输了的地方:

乍一看这很容易,但是......这是否意味着国际字符的常规ascii字符(想想UTF-8编码)?

举个例子:当我忽略"ü"是一个需要更多字节来表示的国际字符时,域"müller.de"有9个字符."müller.de"的IDNA版本是"xn--mller-kva.de",有16个字符.这表明最大长度肯定存在差异,具体取决于"if"是否转换为IDNA.

根据它们的含义,最多255个字符可以是国际字符版本,IDNA转换版本,甚至两者.

这就是我失去它的地方......特别是,因为我必须考虑到并非所有领域都是理智的,像"öüßüöäéèê.example.äöüßüöäéèê-äöüßüöäéèê.test.äöüßüöäéèê.com"这样的东西,更糟糕的是被期望.

因此,"猜测"和"希望最好"不是一种选择.我需要确定...

问题是:

基于已知的事实,即域名(包括任何子域)中的最大字符数是255个字符... IDNA转换的域名的最大长度是多少?

或者他们是否意味着IDNA转换版本(punycode)也限制为255个字符(这意味着具有国际/ unicode字符的域实际上在其unicode表示中具有更短的限制,因为他们的IDNA转换版本将必须尊重255个字符限制)?

dns database-design punycode maxlength idn

9
推荐指数
2
解决办法
2138
查看次数