我正在试图提取一些网址,它可能不止一个,它来自一个正文邮件.
而我正试图解析网址,用这个:
use strict;
use warnings;
use Net::IMAP::Simple;
use Email::Simple;
use IO::Socket::SSL;
# here must be the connection to imap hidden for economize space
my $es = Email::Simple->new( join '', @{ $imap->get($i) } );
my $text = $es->body;
print $text;
my $matches = ($text =~/<a[^>]*href="([^"]*)"[^>]*>.*<\/a>/);
print $matches;
Run Code Online (Sandbox Code Playgroud)
在$ text上我有下一个文字:
--047d7b47229eb3d9f404e58fd90a
Content-Type: text/plain; charset=ISO-8859-1
Try1 <http://www.washingtonpost.com/>
Try2 <http://www.thesun.co.uk/sol/homepage/>
--047d7b47229eb3d9f404e58fd90a
Content-Type: text/html; charset=ISO-8859-1
<div dir="ltr"><a href="http://www.washingtonpost.com/">Try1</a><br><div><br></div><div><a href="http://www.thesun.co.uk/sol/homepage/">Try2</a><br></div></div>
--047d7b47229eb3d9f404e58fd90a--
Run Code Online (Sandbox Code Playgroud)
程序的输出,给我一个1......就是这样.
有谁可以帮忙?
谢谢你的建议.
我如何只使用PHP在html字体标记中删除size属性和face属性.
<font color="#ff0000" size="4" face="georgia"> text text again</font>
again and again text <font color="#ff0000"> text text again </font>
Run Code Online (Sandbox Code Playgroud)
顺便说说.即时通讯使用wysiwyg编辑器,这就是为什么在字体标签,我只想显示没有大小和面部属性的字符串.
我不关心库是什么,但我需要一种方法从页面的<.body.>中提取<.script.>元素(作为字符串).然后我想在<./ body.>之前插入提取的<.script.>.
理想情况下,我想将<.script.> s提取为2种类型;
1)外部(具有src属性的那些)2)嵌入式(代码在<.script.> <./ script.>之间)
到目前为止,我已经尝试过phpDOM,Simple HTML DOM和Ganon.
我对它们中的任何一个都没有运气(我可以找到链接并删除/打印它们 - 但每次都失败了脚本!).
替代
/sf/ask/1639042121/
(很抱歉重新发布,但已经过了24小时的尝试和失败,使用替代库,失败更多等).
基于来自@ alreadycoded.com的可爱的RegEx答案,我设法将以下内容整合在一起;
$output = "<html><head></head><body><!-- Your stuff --></body></html>"
$content = '';
$js = '';
// 1) Grab <body>
preg_match_all('#(<body[^>]*>.*?<\/body>)#ims', $output, $body);
$content = implode('',$body[0]);
// 2) Find <script>s in <body>
preg_match_all('#<script(.*?)<\/script>#is', $content, $matches);
foreach ($matches[0] as $value) {
$js .= '<!-- Moved from [body] --> '.$value;
}
// 3) Remove <script>s from <body>
$content2 = preg_replace('#<script(.*?)<\/script>#is', '<!-- Moved to [/body] -->', $content); …Run Code Online (Sandbox Code Playgroud) 例如,我有这种内容
<div id="t1" class="tt" tag='t2"><div class="t3">tee</div><a href='#'>test</a><span>test</span><div>asdf</div></div>
<div id="t1" class="tt" tag='t2"><div class="t3">tee</div><a href='#'>test</a><span>test</span><div>asdf</div></div>
Run Code Online (Sandbox Code Playgroud)
我试图使用preg_match来获取父div之间的内容,所以这里父div意味着<div id="t1".我使用preg_match还是有其他方法来获取这些div之间的数据?
我试图从 id 名称获取 div 的内容。
这是我想要获得的 div: <div id="article-body"> ... </div>
但是,这是在另一个外部网站上,因此必须使用 www 或 http:// 等调用它...
我确定这是可能的。只是不确定我是否应该使用 PHP、DOM 或 jQuery 等。
我认为这段代码应该可以在几行中完成。只是不知道什么是最好的方法。感谢您的提示或想法。
更新:有人建议这是一个重复的问题。它不是。我使用了下面建议的重复问题中的代码,但它不起作用。
这是错误之一:警告:DOMDocument::loadHTML() [domdocument.loadhtml]: ID changeRegionForm already defined in Entity, line: 85 in /home/content/w/i/s/wisdom33/html/testing/getDivExternalWebsite第 14 行的 .php
这是代码的链接:http : //massmediamail.com/testing/getDivExternalWebsite.php
这是代码:
<html>
<body>
<?
$doc = new DomDocument;
// We need to validate our document before refering to the id
$doc->validateOnParse = true;
$doc->loadHtml(file_get_contents('http://www.lifesitenews.com/news/second-madagascar-archbishop-criticizes-catholic-relief-services-full-trans'));
var_dump($doc->getElementById('article-body'));
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) echo $ul; // gives this code:
<ul id="menu">
<li id="some_id" class="some_class">...</li>
<li id="some_id" class="some_class">...</li>
<li id="some_id" class="some_class">...</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
如何为第一个和最后一个添加一些类<li>?
需要正则表达式解决方案.
echo $ul;应该给(如果我们添加my_class最后一个类<li>):
<ul id="menu">
<li id="some_id" class="some_class">...</li>
<li id="some_id" class="some_class">...</li>
<li id="some_id" class="some_class my_class">...</li>
</ul>
Run Code Online (Sandbox Code Playgroud) 可能重复:
帮助获取元标题和描述
我花了一整天的时间.在网上搜索.在satckoverflow上也看到了一些类似的问题.但我都失望了.
我想得到一些PHP代码,通过它我可以输出标题和一些4-5行的任何网站的描述使用PHP.
有任何方法可以提取以php HTML开头<body>和结尾的页面内容</body>.如果有人可以发布一些示例代码.
鉴于下面的代码,我想匹配第一次form出现.我发现负面前瞻?!可能用于实现这一目标,但它不起作用.我的正则表达式有什么问题?
#test
$test = "<form abc> foo </form> <form gg> bar </form>";
$test =~ m/<form[^>]*abc[^>]*>(?!.*form>.*)form>/s;
print $&;
Run Code Online (Sandbox Code Playgroud) 我是PHP的新手,对用PHP编写的CMS中的某个文件进行了一些修改.我修改了一个<img>在页面源中获取第一个标记的函数,从该源获取随机标记.
用于匹配源的正则表达式是:
$regex = '/<' . $tag . '\\b[^>]*>/i';
Run Code Online (Sandbox Code Playgroud)
其中$tag只包含一个字符串img.
但是我注意到在源代码中有图像,其中src属性包含"1px.gif",我不想匹配这些.
目前我不断从匹配数组中重新选择一个随机元素,直到它不是1px.gif,但当然这是一个糟糕的解决方案.
我不能用正则表达式自己做这个,但我理解上面的正则表达式搜索<img和一个不是的单词字符>.我需要添加"并且不包含'1px.gif'".
我可以选择检查匹配数组并删除每个1px.gif的条目,但我更喜欢正则表达式.