小编Fre*_*zin的帖子

从html源代码中删除评论

我知道如何通过cUrl获取html源代码,但我想删除html文档上的注释(我的意思是介于两者之间<!-- .. -->).另外,如果我可以只BODY使用html文档.谢谢.

php curl

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

PHP foreach声明引用:重用迭代器时的意外行为

此代码产生意外的输出:

$array=str_split("abcde");
foreach($array as &$item)
    echo $item;

echo "\n";
foreach($array as $item)
    echo $item;
Run Code Online (Sandbox Code Playgroud)

输出:

abcde
abcdd
Run Code Online (Sandbox Code Playgroud)

如果&$item用于第二个循环一切正常.

我不明白这段代码会如何影响内容 $array.我可以认为隐含unset($header)会删除最后一行,但双dd来自哪里?

php arrays foreach pass-by-reference

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

PHP DOMNode:如何不仅提取文本而且提取HTML标签

我正在尝试创建一个脚本来抓取网站以检索最新的新闻更新.不幸的是,我遇到了一个小问题,我似乎无法解决我对DOM的有限知识.

我正在尝试抓取的页面构建如下:

<table>
<tr class="color1">
<td>Author</td>
<td>Content <a href="#">in HTML</a></td>
<td>Date</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)

除了内容,我可以检索我需要的字段.使用$ td-> nodeValue我以文本形式检索内容,而我想用HTML格式(那里有'a'标签,'blockquote'等)

这是我的代码:

try {
    $html = @ file_get_contents("test.php");
    checkIfFileExists($html);

    $dom = new DOMDocument();
    @ $dom->loadHTML($html);

    $trNodes = $dom->getElementsByTagName("tr");
    foreach ($trNodes as $tr) {

        if ($tr->getAttribute("class") == "color1" || $tr->getAttribute("class") == "color2") {

        $tdNodes = $tr->childNodes;
        foreach ($tdNodes as $td) {

            echo $td->nodeValue . "<br />\n";

        }
        echo "<br /><br /><br /><br /><br />\n";
    }
} catch(Exception $e) {
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

我宁愿不必诉诸任何第三方图书馆,但显然任何答案都是最受欢迎的,图书馆与否.

提前致谢.

php dom screen-scraping

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

http_build_str()和http_build_query()之间有什么区别?

我发现这些功能似乎是多余的. http_build_query()属于标准的PHP函数. http_build_str()是pecl_http包的一部分.

他们是100%多余的吗?

我专注于获得完美的反向功能parse_str().因为http_build query()破了.(参见参考资料)我想知道是否有某种方式http_build_str()可以有任何优势来支持/容忍更多的边缘情况.

php

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

HOWTO 观察网络流量以进行 curl 调试

我正在尝试进行一个 curl 调用,同时传递一个图像文件。
显然它对我不起作用。但是,我有一个测试工作,它只使用直接的 html 表单。

如何调试/打印从 curl 传递的原始数据?
尝试将调用与表单版本进行比较,看看有什么不同。

我试过这些:

curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_VERBOSE, true);

print_r(curl_getinfo($curl));
Run Code Online (Sandbox Code Playgroud)

但这些似乎只是返回响应而不是原始请求。(它是通过第 3 方的,所以我无法访问终点)

谢谢你,
Tee

php curl

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

如何使用UriInfo测试JERSEY控制器方法

我正在为JERSEY项目编写单元测试.

对于没有查询字符串的方法,我可以实例化控制器并调用该方法.

也适用于路径中的参数,因为它们显示为方法的字符串参数.

但是当我得到queryStrings时,模式有一个特殊的参数 (@Context UriInfo url)

如何在单元测试中构建UriInfo参数?为什么这个类没有构造函数?

java unit-testing jersey java-ee

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

如何使用scrapy抓取多个域名

我有一个项目,我必须在其中抓取大量不同的网站。所有这些网站的爬行都可以使用相同的蜘蛛,因为我不需要从其正文页面中提取项目。我想到的方法是在蜘蛛文件中参数化要爬行的域,并调用 scrapy scrapy 命令传递域并启动 url 作为参数,这样我就可以避免为每个站点生成一个蜘蛛(站点列表将增加超过时间)。我的想法是将其部署到运行 scrapyd 的服务器上,所以我想到了几个问题:

  • 这是我可以采取的最佳方法吗?
  • 如果是这样,如果我多次调度同一蜘蛛并传递不同的参数,是否会出现并发问题?
  • 如果这不是最好的方法,最好每个站点创建一个蜘蛛......我将不得不经常更新项目。项目更新会影响正在运行的蜘蛛吗?

scrapy scrapyd

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

如何更改scrapy请求队列大小?如何实现严格的DFO订单

根据常见问题解答,Scrapy首先探索深度,但我注意到它会在运行任何更深层的请求之前处理来自start_urls的10到30个请求.

在处理start_urls之前,我可以更改参数并强制scrapy探索深度吗?

参考http://doc.scrapy.org/en/latest/faq.html#does-scrapy-crawl-in-breadth-first-or-depth-first-order

python twisted depth-first-search scrapy

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

Eclipse和Xdebug不解析/etc/php5/conf.d中的其他ini文件

我在Ubuntu 11.4上为AMD64和Xdebug设置了Eclipse 3.6.2 .

Eclipse是从eclipse.org下载的zip下载安装的.PHP和Xdebug使用apt-get进行设置.

当我在shell中运行PHP脚本时,他们将使用该/etc/php5/php.ini文件并解析其他ini文件/etc/php5/conf.d/.

当我在Eclipse(运行模式或调试模式)中运行时,它只会解析php.ini而不会有其他的ini文件.

基本上,所有扩展都没有加载.

php eclipse ubuntu xdebug eclipse-pdt

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

php搜索数组,其中包含"key:value"项

如果我有一个看起来像这样的数组$输出,我怎么能搜索数组并回显持续时间值,在这种情况下是30.持续时间并不总是关键[18].

Array
(
    [16] =>     hasKeyframes    : true
    [17] =>     hasMetadata     : true
    [18] =>     duration        : 30
    [19] =>     audiosamplerate : 22000
    [20] =>     audiodatarate   : 68
    [21] =>     datasize        : 1103197
}
Run Code Online (Sandbox Code Playgroud)

php arrays

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

在unix上运行的PHP脚本中出现奇怪的错误

我在unix shell中运行php,我收到以下错误.该脚本是一个Web scraper,如果我访问它,它在我的主机上运行正常.但是我想把它作为一个cron工作来运行,我该怎么办?

警告:file_get_contents(http://www.lomamatkat.fi/iframes/last-minute-offers/?lastminute_next=50):无法打开流:在/ var/www/customers/lentovertailufi/public_html中找不到合适的包装器第30行上的/matkat/script/lomamatkat.php PHP警告:file_get_contents():第30行的/var/www/customers/lentovertailufi/public_html/matkat/script/lomamatkat.php中的服务器配置中禁用了URL文件访问

php

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