相关疑难解决方法(0)

按id查找元素并用php替换其内容

我想使用PHP在文件内容中搜索具有特定id的元素,替换其内容,然后将我的更改保存到文件中.我可以加载HTML,然后再将其保存回来,但是我遇到了'find and replace'(目前正在尝试使用preg_replace)的问题.

这是我到目前为止所拥有的:

<?php
// read in the content
$file = file_get_contents('file.php');

// parse $file, looking for the id.
$replace_with = "id='" . 'myID' . "'>" . $replacement_content . "<";
if ($updated = preg_replace('/id\=\"myID\"\>.*?\</', $replace_with, $file)) {   
    // write the contents of $file back to index.php, and then refresh the page.
    file_put_contents('file.php', $updated);
}
Run Code Online (Sandbox Code Playgroud)

但是,虽然它成功加载内容并将其写出来(我已经通过写入单独的文件对其进行了测试),但似乎$ updated实际上并没有改变.

有任何想法吗?

html php replace preg-replace savechanges

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

PHP Dom文件html更快还是preg_match_all函数更快?

我怀疑哪一个处理速度更快?

使用curl函数的dom文件或preg_match_all在html页面解析中更快?将dom文件功能留在其他服务器上如curl函数吗?例如,在curl函数中,我们使用用户代理来定义谁正在访问,但在dom文档中没有任何内容.

php dom

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

PhpQuery如何工作?试图获取<title>标签的值

我是phpQuery的新手.我需要完成获取网页HTML TITLE标记内容的简单任务.在这种情况下,我试图获得"雅虎"的标题内容 应该是"雅虎".

我正在用phpQuery做这个,但它现在正在工作

// Testing phpQuery
$result = phpQuery::newDocumentFile($scraps['Scrap_yahoo']->getPage('http://www.yahoo.com','','off'))
            ->find('title');
echo $result->text();
Run Code Online (Sandbox Code Playgroud)

有人能给我一个如何实现这一目标的线索吗?

最好的祝福,

php tags title phpquery

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

从下一个标签获取文本

我有一个看起来像这样的html片段(当然包围其他html):

<p class="finfot3"><b>Header:</b></p>
<p>Text</p>
Run Code Online (Sandbox Code Playgroud)

我怎么能从中得到Text这个?我正在使用simple_html_dom,但如果simple_html_dom不能这样做,我可以使用其他东西.

php regex simple-html-dom

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

使用PHP在任意HTML中查找重要文本?

我有一些随机的HTML布局,其中包含我想要提取的重要文本.我不能只是strip_tags()因为它会从侧边栏/页脚/标题/等中留下一堆额外的垃圾.

我发现了一个用Python构建方法,我想知道在PHP中是否有这样的东西.

这个概念相当简单:如果一行文本值得输出,请使用有关文本密度与HTML代码的信息.(这不是一个新颖的想法,但它有效!)基本过程的工作原理如下:

  1. 解析HTML代码并跟踪处理的字节数.
  2. 以每行或每段为基础存储文本输出.
  3. 将每个文本行与描述它所需的HTML字节数相关联.
  4. 通过计算文本t> o字节的比率来计算每行的文本密度.
  5. 然后通过使用神经网络确定该行是否是内容的一部分.

只需检查线路的密度是否高于固定阈值(或平均值),您就可以获得相当不错的结果,但如果您使用机器学习,系统会减少错误 - 更不用说它更容易实现了!

更新:我开始获得一个可以从随机HTML模板中提取主要内容的答案.由于我无法共享我将使用的文档 - 只需选择任意随机博客网站并尝试从布局中提取正文.请记住,标题,侧边栏和页脚也可能包含文本.请参阅上面的链接以获取建议.

php regex dom text-parsing

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

file_get_contents 脚本适用于某些网站,但不适用于其他网站

我正在寻找构建一个解析特定标签的 HTML 的 PHP 脚本。我一直在使用这个代码块,改编自本教程

<?php 
$data = file_get_contents('http://www.google.com');
$regex = '/<title>(.+?)</';
preg_match($regex,$data,$match);
var_dump($match); 
echo $match[1];
?>
Run Code Online (Sandbox Code Playgroud)

该脚本适用于某些网站(例如上面的 google),但是当我在其他网站(例如,freshdirect)上尝试时,出现此错误:

“警告:file_get_contents(http://www.freshdirect.com)[function.file-get-contents]:无法打开流:HTTP 请求失败!”

我在 StackOverflow 上看到了很多很棒的建议,例如extension=php_openssl.dll在 php.ini 中启用。但是(1)我的 php.ini 版本中没有extension=php_openssl.dll,并且(2)当我将它添加到扩展部分并重新启动 WAMP 服务器时,每个线程,仍然没有成功。

有人会介意给我指出正确的方向吗?非常感谢!

php regex parsing file-get-contents

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

如何使用插件add_filter删除或更改wordpress中的<title>标签?

我需要<title>使用插件更改或删除wordpress 中的标签,
例如<title> My old title </title>=><title> New title </title>

我试试看

function plugin_title($content){
    $content=str_replace('My old title','New title',$content); 
    return $content;
}

add_filter('wp_head','plugin_title');
Run Code Online (Sandbox Code Playgroud)

//但它不起作用.任何的想法 ?

php wordpress plugins title add-filter

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

无法使用字符串替换更改the_content中的<p>标记

我正在努力获得一个简单的字符串替换工作在wordpress the_content函数.

<?php 

    $phrase = the_content();
    $find = '<p>';
    $replace = '<p style="text-align: left; font-family: Georgia, Times, serif; font-size: 14px; line-height: 22px; color: #1b3d52; font-weight: normal; margin: 15px 0px; font-style: italic;">';

    $newphrase = str_replace($find, $replace, $phrase);

    echo $newphrase;

?>
Run Code Online (Sandbox Code Playgroud)


它似乎<p>还在呼应.

代替 <p style="text-align: left; font-family: Georgia, Times, serif; font-size: 14px; line-height: 22px; color: #1b3d52; font-weight: normal; margin: 15px 0px; font-style: italic;">

php wordpress

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

哪个HTML Parser(最好是PHP)支持在输入字符串中获取当前节点的偏移量?

我正在寻找一个HTML或XML解析器,让一个访问当前元素的偏移/位置输入字符串或文件.

例如,如果遍历此字符串:

<div>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>
    <p>sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</div>
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来获取每个<p>标签的起始位置(包括空白),这里:772.

如果一个PHP解析器原生支持它会很棒(我看过这个SO问题中提到的DOM,XMLReader和其他库,但还没有找到方法)但是否则任何语言/框架都会精细.

注意:与此问题相关,但本地化程度较低.

php html-parsing

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

PHP Simple HTML DOM Parser添加脚本标记

是否可以使用PHP Simple HTML DOM Parser在一个simple_html_dom对象的头部添加一个新的脚本taga,该对象具有来自主页的完整html?

我需要在该模板中添加一些节点,其中一个节点是带有jquery的脚本标签,另一个是带有一些文本的div,我从数据库中提取.

我之前做过这样的事情:(使用DOMDocument)

$dom = new DOMDocument('1.0', 'UTF-8');
$dom->loadHTML($remote);
$head = $dom->getElementsByTagName('head')->item(0);
$jquery = '$(document).ready(function(){ $("#feed_home").hide()});
  if (window.location.hash) {
    Destino = window.location.hash.replace(\'#!\', \'?\');

         window.location.href = window.location.href.split(\'#\')[0] + Destino;
}
';

$script = $dom->createElement('script', $jquery);
$script_type = $dom->createAttribute('type');

$script_type->value = 'application/javascript';
$script->appendChild($script_type);
$head->appendChild($script);
Run Code Online (Sandbox Code Playgroud)

php domdocument simple-html-dom

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