获取php中当前URL的文本内容

获取php中当前URL的文本内容,php,curl,Php,Curl,我正在处理URL获取内容 如果我只想从此站点获取文本内容(仅文本) 这怎么可能。我可以使用PHP获取URL标题和URL 我使用以下代码获得url标题: $url = getenv('HTTP_REFERER'); $file = file($url); $file = implode("",$file); //$get_description = file_get_contents($url); if(preg_match("/<title>(.+)<\/title&g

我正在处理URL获取内容

如果我只想从此站点获取文本内容(仅文本)

这怎么可能。我可以使用PHP获取URL标题和URL

我使用以下代码获得url标题:

$url = getenv('HTTP_REFERER');

$file = file($url);
$file = implode("",$file);

//$get_description = file_get_contents($url);

if(preg_match("/<title>(.+)<\/title>/i",$file,$m))
$get_title = $m[1];
echo $get_title;
$url=getenv('HTTP_REFERER');
$file=文件($url);
$file=内爆(“,$file”);
//$get\u description=文件\u get\u内容($url);
if(preg_匹配(“/(.+)/i”,$file,$m))
$get_title=$m[1];
echo$get_标题;
你能帮我弄到内容吗

使用文件获取内容,我可以单独获取HTML代码。还有其他的可能性吗

谢谢-
Haan用于获取HTML内容,然后删除HTML标记,从而只留下文本。

如果您只想获取HTML页面的文本版本,则必须自己处理。获取HTML(正如您似乎已经知道的那样),然后使用PHP将其处理为纯文本

有几种方法可以做到这一点。第一个是htmlspecialchars(),它将转义所有HTML特殊字符。我不认为这是你真正想要的,但为了完整起见,我想我还是提一下

第二种方法是strip_tags()。这将从HTML文档中完全删除所有HTML。然而,它并不验证它使用的输入,它只是做一个相当简单的文本替换。这意味着您将得到一些您可能不希望包含在文本表示中的内容(例如head部分的内容,或者嵌入式javascript和样式表的内部)

另一种方法是使用DOMDocument解析下载的HTML。我没有为您编写代码(没有时间),但一般过程类似于以下内容:

  • 将HTML加载到DOMDocument对象中
  • 获取文档的body元素并迭代其子元素
  • 对于每个子节点,如果所涉及的子节点是文本节点,则将其附加到输出字符串。如果它不是文本节点,那么也迭代它的子元素以检查它的子元素是否是文本节点(如果不是,那么也迭代那些子元素,以此类推)。您可能还想进一步检查节点的类型。例如,如果您不想在输出中嵌入javascript或css,那么可以检查标记类型是否为STYLE或SCRIPT,如果是则忽略它 上述描述最容易实现为递归函数(调用自身的函数)

    最终结果应该是一个字符串,它只包含下载页面的文本内容,没有标记


    编辑:忘记带标签了!我更新了我的答案,也提到了这一点。不过,我在回答中保留了我的DOMDocument方法,因为正如strip_标记的文档所述,它不验证标记及其处理,而DOMDocument尝试解析它(如果基于DOMDocument的文本提取得到很好的实现,它可能会更加健壮)

    我将尝试最后一种方法。谢谢你宝贵的回答