相关疑难解决方法(0)

preg_replace 属性值

所以我有一个有效的 preg_match 模式来查找字符串中 HTML 属性的值,我需要用 preg_replace 做同样的事情——不是找到并返回值,而是用一个新的值替换它。

但是如果我只使用 preg_match 模式它不起作用......我被卡住了。

这是代码:

    $string = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
width="437" height="288" id="viddler">
<param name="movie" value="http://www.viddler.com/player/1234567890/" />
<param name="allowScriptAccess" value="always" />
<param name="allowFullScreen" value="true" />
<param name="flashvars" value="fake=1"/>
<embed src="http://www.viddler.com/player/1234567890/" 
width="437" height="288" type="application/x-shockwave-flash" 
allowScriptAccess="always" allowFullScreen="true" flashvars="fake=1" 
name="viddler" ></embed></object>';

preg_match("|<*[^>]*width=\"([^>]+)\"[^>]*>|Ui", $string, $results);

echo 'Width: '.$results[1];
Run Code Online (Sandbox Code Playgroud)

这有效并将返回437。但是,如果我在 preg_replace() 函数中使用相同的模式,它将删除整个<object>标签。我需要用其他任何东西替换那个 437,比如 200。当我们在做的时候,我还需要替换高度值。最后,这应该适用于任何嵌入代码或 iframe,因此它应该分别查找width="height="......就像上面的 preg_match 示例一样。

任何帮助深表感谢。

编辑:蒂姆的解决方案如下

我让蒂姆的模式进行了一个小的修改:

$interm = preg_replace('|(<*[^>]*width=)"[^>]+"([^>]*>)|Ui', '\1"200"\2', $string);
$result = preg_replace('|(<*[^>]*height=)"[^>]+"([^>]*>)|Ui', '\1"300"\2', $interm);
Run Code Online (Sandbox Code Playgroud)

如果没有这个更改,第一个函数会替换宽度,但它会删除标签中之后的所有属性。 …

php regex preg-replace

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

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

使用REGEX替换两个HTML标记之间的所有"foo"(PHP代码)

我想要一个正则表达式代码,将所有"foo"字符串替换为"bar",在html标签之前> </ pre>

这是一个例子:

< html>
< p> blah blah blah foo try foo< /p>
< pre> foo try foo word foofoo < /pre>
< /html>
Run Code Online (Sandbox Code Playgroud)

应该是

< html>
< p> blah blah blah foo try foo< /p>
< pre> bar try bar word barbar < /pre>
< /html>
Run Code Online (Sandbox Code Playgroud)

所以,这意味着pre之前的所有foo都应该替换为.

我试图使用这个正则表达式模式,但它无法正常工作.

do {
$string = preg_replace('/< pre>([^)]*)foo([^)]*< /pre>)/U', '\1boo\2', $string, -1,$count);
}while($count != 0);
echo $string;
Run Code Online (Sandbox Code Playgroud)

对不起我的英文谢谢你,

php regex

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

完美的preg_match_all来获取href

可能重复:
抓取A元素的href属性

我已经浏览了很多其他帖子,看到所有帖子都遵循一些固定的Anchor标签格式.他们中的大多数人都认为锚标签格式是<a href="http://www.example.com/">Hello</a>..也许是target后面的属性<a..但我正在尝试编写一个正则表达式来匹配锚标记的href,无论它出现在标记中的哪个位置.它可以出现在alt,title,target之后或者它们之间.还有另一种情况,锚标记使用单引号而不是双引号.
我已经尝试了半个小时而没有得到任何结果.所以在这里发布.

php preg-match-all

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

PHP&gt; 从 html 文件中提取 html 数据?

我最近一直在尝试从给定的 html 文件中提取列表信息,

例如,我有一个 html 页面,其中包含许多公司的列表,包括他们的电话号码、地址等'

每家公司都有自己的桌子,每张桌子都是这样开始的: <table border="0">

我尝试使用 PHP 获取所有信息,然后再使用它,例如将其放入 txt 文件中,或者只是导入到数据库中。

我认为实现目标的方法是使用正则表达式,这是我在 php 中真正遇到问题的事情之一,

如果你们能在这里帮助我,我将不胜感激。(我只需要知道要寻找什么,或者至少可以帮助我一点的东西,而不是完整的代码或类似的东西)

提前致谢!!

php

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

如何在preg_match_all php中获取组的值?

嗨,我的模式是:

'<span\s+id="bodyHolder_newstextDetail_nwstxtPicPane"><a\s+href="(.*)"\s+target="_blank"><img\s+alt="(.*)"\s+title="(.*)"\s+src=\'(.*)\'\s+/>'
Run Code Online (Sandbox Code Playgroud)

而字符串:

<div class="nwstxtpic">
                        <span id="bodyHolder_newstextDetail_nwstxtPicPane"><a href="xxxxx" target="_blank"><img alt="xxxxx" title="xxxxx" src='xxxxx' />
Run Code Online (Sandbox Code Playgroud)

好吧,我的用于查找和获取我在patern中定义的4个组的值的PHP代码是:

$picinfo=preg_match_all('/<span\s+id="bodyHolder_newstextDetail_nwstxtPicPane"><a\s+href="(.*)"\s+target="_blank"><img\s+alt="(.*)"\s+title="(.*)"\s+src=\'(.*)\'\s+/>/',$newscontent,$matches);
foreach ($matches[0] as $match) {
    echo $match;
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何获得这4组的价值

href="(.*)"

alt="(.*)"

title="(.*)"

src=\'(.*)\'
Run Code Online (Sandbox Code Playgroud)

你能帮我吗?谢谢.

php preg-match-all preg-match

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

使用正则表达式从HTML中删除<style>块

可能重复:
如何使用PHP解析和处理HTML?

我希望能够使用preg_replace从HTML中删除内联css {}块.有人知道正则表达式吗?

UPDATE

我不会控制页面.我想从页面中删除所有标记,只留下内容.

html php regex

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

导出数据中的Html代码[PHP]

我试图导出从我的数据库中获取的数据.
问题是数据带有html代码.
我只想导出没有HTML代码的数据.

注意:我的数据库没有任何HTML代码.

$exported_db_datas (全局数组变量)是这样创建的:

while($row = mysql_fetch_array($resultset,MYSQL_ASSOC))
{
    $resultsarray[$rowcount] = $row;
    $exported_db_datas[$rowcount] = $row;
    /*foreach($resultsarray[$rowcount] as $column)
    {
        $resultsarray2[$rowcount][] = $column;                  
    }*/

    $rowcount++;        
}
Run Code Online (Sandbox Code Playgroud)

出口代码:

$export_file = "export_phisto";

if ($format == "CSV")
{
    $file = $export_file.".csv";
    $separator = ",";
}
elseif ($format == "TAB")
{
    $file = $export_file.".tab";
    $separator = "\t";
}
elseif ($format == "TXT")
{
    $file = $export_file.".txt";
    $separator = "\t";
}
else// XLS
{
    $file = $export_file.".xls";
    $separator = "\t";
}    


header("Content-Disposition: attachment; filename=\"$file\"");
header("Content-Type: …
Run Code Online (Sandbox Code Playgroud)

html php tags export

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

使用PHP解析亚马逊产品页面

我如何用PHP解析这个亚马逊产品页面并检索产品描述?

<div class="bucket">
    <h2>Descrizione del prodotto</h2>
    <div class="content">Taglia la corda per dare i bonbon al mostriciattolo ...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要使用类"content"将文本转换为div,但是此页面中有多个div,其中包含"bucket"和"content"类.

php

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

在PHP中解析和编辑XML文件

如何在PHP中对XML文件进行以下编辑.我基本上想保留一些元素并将这些元素写入新的XML文件.

所以,我知道如何打开新文件并准备编写,然后打开XML文件并逐行迭代:

$lines = fopen("file.xml", "r");
$new = fopen("newFile.xml", "w");
foreach($lines as $line){

    /* operations on each line here */
}
Run Code Online (Sandbox Code Playgroud)

我不想对每一行进行操作,而是对file.xml中的某些元素进行操作.

我需要做的是对每个<doc>元素(之间的一切<doc></doc>):

  1. echo "<doc>" 并打破$ new的新行.
  2. 写之间的一切<title></title>包括标签美元的新.
  3. 写之间的一切<url></url>包括标签美元的新.
  4. 写之间的一切<abstract><abstract>包括标签美元的新.
  5. echo "</doc>" 并打破一个新的界限.

然后转到下一个<doc> </doc>区块.

我非常感谢所有和任何帮助学习如何做到这一点.

php xml file xml-parsing

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