相关疑难解决方法(0)

2071
推荐指数
28
解决办法
40万
查看次数

怎么做正则表达式模式与字符串中的任何地方都不匹配?

我正在尝试<input>使用此模式匹配类型"隐藏"字段:

/<input type="hidden" name="([^"]*?)" value="([^"]*?)" />/
Run Code Online (Sandbox Code Playgroud)

这是示例表单数据:

<input type="hidden" name="SaveRequired" value="False" /><input type="hidden" name="__VIEWSTATE1" value="1H4sIAAtzrkX7QfL5VEGj6nGi+nP" /><input type="hidden" name="__VIEWSTATE2" value="0351118MK" /><input type="hidden" name="__VIEWSTATE3" value="ZVVV91yjY" /><input type="hidden" name="__VIEWSTATE0" value="3" /><input type="hidden" name="__VIEWSTATE" value="" /><input type="hidden" name="__VIEWSTATE" value="" />
Run Code Online (Sandbox Code Playgroud)

但我不知道的type,namevalue属性将始终出现在相同的顺序.如果type属性是最后一个,则匹配将失败,因为在我的模式中,它在开始时.

问题:
如何更改模式以使其匹配,无论<input>标签中属性的位置如何?

PS:顺便说一下,我正在使用基于Adobe AirRegEx桌面工具来测试正则表达式.

html regex parsing

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

如何在PHP中创建一个简单的爬虫?

我有一个包含大量链接的网页.我想编写一个脚本,将脚本中包含的所有数据转储到本地文件中.

有人用PHP做过吗?一般准则和陷阱就足以作为答案.

php web-crawler

64
推荐指数
6
解决办法
16万
查看次数

php中的DOMDocument

我刚刚开始阅读有关DOM的文档和示例,以便抓取和解析文档.

例如,我有部分文件如下所示:

    <div id="showContent">
    <table>
    <tr>
        <td>
         Crap
        </td>
    </tr>
<tr>
          <td width="172" valign="top"><a href="link"><img height="91" border="0" width="172" class="" src="img"></a></td>
          <td width="10">&nbsp;</td>
          <td valign="top"><table cellspacing="0" cellpadding="0" border="0">
              <tbody><tr>
                <td height="30"><a class="px11" href="link">title</a><a><br>
                    <span class="px10"></span>
                </a></td>
              </tr>
              <tr>
                <td><img height="1" width="580" src="crap"></td>
              </tr>
              <tr>
                <td align="right">
                    <a href="link"><img height="16" border="0" width="65" src="/buy"></a>
                </td>
              </tr>
              <tr>
                <td valign="top" class="px10">
                    <p style="width: 500px;">description.</p>
                </td>
              </tr>
          </tbody></table></td>
        </tr>
    <tr>
        <td>
Crap
        </td>
    </tr>
    <tr>
        <td>
         Crap
        </td>
    </tr>
    </table>
    </div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下代码来获取所有tr标记并分析其中是否存在垃圾或信息:

$dom …
Run Code Online (Sandbox Code Playgroud)

php html-parsing domdocument xml-parsing

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

如何返回DOMDocument的外部html?

我正在尝试替换字符串中的视频链接 - 这是我的代码:

$doc = new DOMDocument();
$doc->loadHTML($content);
foreach ($doc->getElementsByTagName("a") as $link) 
{
    $url = $link->getAttribute("href");
    if(strpos($url, ".flv"))
    {
        echo $link->outerHTML();
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,outerHTML当我试图获取完整超链接的html代码时不起作用<a href='http://www.myurl.com/video.flv'></a>

任何想法如何实现这一目标?

php dom outerhtml

15
推荐指数
3
解决办法
9992
查看次数

php regex在href标签内获取字符串

我需要一个正则表达式,它会给我一个href标签内部的字符串和引号内部.

例如,我需要在以下内容中提取theurltoget.com:

<a href="theurltoget.com">URL</a>
Run Code Online (Sandbox Code Playgroud)

另外,我只想要基本网址部分.即http://www.mydomain.com/page.html我只想要http://www.mydomain.com/

php regex html-parsing

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

正则表达式替换PHP中的html src属性

我正在尝试使用正则表达式替换PHP中的源属性(可能是图像或任何标记).

我有一个像这样的字符串:

$string2 = "<html><body><img src = 'images/test.jpg' /><img src = 'http://test.com/images/test3.jpg'/><video controls="controls" src='../videos/movie.ogg'></video></body></html>";
Run Code Online (Sandbox Code Playgroud)

我想把它变成:

$string2 = "<html><body><img src = 'test.jpg' /><img src = 'test3.jpg'/><video controls="controls" src='movie.ogg'></video></body></html>";
Run Code Online (Sandbox Code Playgroud)

继承人我试过的:

$string2 = preg_replace("/src=["']([/])(.*)?["'] /", "'src=' . convert_url('$1') . ')'" , $string2);
echo htmlentities ($string2);
Run Code Online (Sandbox Code Playgroud)

基本上它没有改变任何东西,并给了我一个关于未转义字符串的警告.

$1发送字符串的内容?这有什么不对?

而convert_url的功能来自我之前发布的一个例子:

function convert_url($url)
{
    if (preg_match('#^https?://#', $url)) {
        $url = parse_url($url, PHP_URL_PATH);
    }
    return basename($url);
}
Run Code Online (Sandbox Code Playgroud)

它应该删除url路径并返回文件名.

html php regex

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

PHP String Manipulation:提取hrefs

我有一个HTML字符串,我想检查它是否有任何内部链接,如果是这样,提取它们并将它们放在一个数组中.我可以使用其选择器的简单性在jQuery中执行此操作,但我找不到在PHP中使用的正确方法.

例如,字符串可能如下所示:

<h1>Doctors</h1>
<a title="C - G" href="linkl.html">C - G</a>
<a title="G - K" href="link2.html">G - K</a>
<a title="K - M" href="link3.html">K - M</a>
Run Code Online (Sandbox Code Playgroud)

如何(在PHP中)我可以把它变成一个看起来像这样的数组:

[1]=>"link1.html"
[2]=>"link2.html"
[3]=>"link3.html"
Run Code Online (Sandbox Code Playgroud)

谢谢,伊恩

php string extract href

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

解析URL的网站

只是想知道是否有人可以通过以下方式进一步帮助我.我想解析这个网站上的URL:http://www.directorycritic.com/free-directory-list.html?pg = 1&sort = pr

我有以下代码:

<?PHP  
$url = "http://www.directorycritic.com/free-directory-list.html?pg=1&sort=pr";
$input = @file_get_contents($url) or die("Could not access file: $url"); 
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>"; 
if(preg_match_all("/$regexp/siU", $input, $matches)) { 
// $matches[2] = array of link addresses 
// $matches[3] = array of link text - including HTML code
} 
?>
Run Code Online (Sandbox Code Playgroud)

目前没有做什么,我需要做的是废弃所有16页的表中的所有URL,并且非常感谢一些帮助,如何修改上述内容并将URL输出到文本文件中.

html php parsing html-parsing

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

使用PHP Simple HTML DOM Parser查找表格单元格并获取下一个兄弟的内容

我正在尝试使用PHP Simple HTML DOM Parser来获取外部文件的HTML.该文件包含一个表,目标是找到具有特定数据内容的能力单元格,然后获取下一个兄弟单元格的数据.这些数据需要放在PHP变量中.

基于如何使用PHP解析和处理HTML/XML等文章中的研究和信息,抓取A元素的href属性,刮擦数据:PHP简单的HTML DOM解析器,当然还有PHP Simple HTML DOM Parser Manual我已经能够产生一些结果,但我担心我可能走错了路.

表格行如下所示:

<tr>
<td>fluff</td>  
<td>irrelevant</td> 
<td>etc</td>   
<td><a href="one">Hello world</a></td>                        
<td>123.456</td> 
<td>fluff</td>          
<td>irrelevant</td>   
<td>etc</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我想要完成的是找到包含"Hello world"的表格单元格,然后从下一个td单元格中获取数字.下面的代码找到了表格单元格并回显了它的内容,但我尝试将它用作地标以获取下一个单元格的数据失败了......

$html = file_get_html("http://site.com/stuff.htm");
$e = $html->find('td',0)->innertext = 'Hello world';
echo $e;
Run Code Online (Sandbox Code Playgroud)

所以最终,在上面的例子中,123.456的值需要以某种方式进入PHP变量.

谢谢你的帮助!

php dom html-parsing

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