如何使用php报废在脚本标记之间获取值。
$homepage = file_get_contents('http://www.example.com/');
//$homepage
<script type="application/ld+json">
//FETCH ME
/script>
答案 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;