PHP在脚本标记之间获取值

时间:2017-06-06 02:31:13

标签: javascript php html

如何使用php报废在脚本标记之间获取值。

$homepage = file_get_contents('http://www.example.com/');

//$homepage
<script type="application/ld+json">
  //FETCH ME
/script>

2 个答案:

答案 0 :(得分:1)

这似乎是您需要的答案,Get content between two strings PHP

第二个答案似乎最简单:

$out = file_get_contents('http://www.example.com/');
$start = "<script ...>"; // replace ... with exact other text you are maching
$end = "</script>";
$startsAt = strpos($out, $start) + strlen($start);
$endsAt = strpos($out, $end, $startsAt);
$result = substr($out, $startsAt, $endsAt - $startsAt);

$result$start$end

之间的内容结果相同

对于多个实例,只需从$out删除第一次出现并重复:

$out = str_replace($start.$result.$end,"",$out);

第一次出现被删除,因此您可以检索第二次出现。但可以肯定的是,可能有一种更简单的方法来解决所有问题,而不仅仅是这种情况。

$startsAt = strpos($out, $start) + strlen($start);
$endsAt = strpos($out, $end, $startsAt);
$result = substr($out, $startsAt, $endsAt - $startsAt);

答案 1 :(得分:0)

您可以使用domDocument来解析html页面。

例如,

$response = file_get_contents($targetpath);
$dom = new domDocument;
$dom->preserveWhiteSpace = false;
@$dom->loadHTML($response);
$description = $dom->getElementById('domid');
$description_text = $description->childNodes->item(1)->childNodes->item(3)->nodeValue;