我需要显示引用网址的标题,这是我用来实现的代码:
<?php
if (isset($_SERVER['HTTP_REFERER'])) {
$url_to_load = $_SERVER['HTTP_REFERER'];
$f = file_get_contents($url_to_load);
$p1 = strpos($f, "<title>");//position start
$qe = substr($f, $p1);//string from start position
$p2 = strpos($qe, "</title>");//position end
$query = substr($qe, 7, $p2-2);//cuts from start position +7 (<title>) untill end position -2...
echo $query;}
else{
$ref_url = 'No Reffering URL'; // show failure message
}//end else no referer set
echo "$ref_url";
?>
当我使用具有以下代码的URL访问包含此代码的页面时:
<title>Title Of Referrer</title>
代码有效,但仍然有结束标记的一部分,当我检查源代码时,这是我将得到的:
Title Of Referrer</tit
我需要更改什么才能完全删除结束标记?
答案 0 :(得分:2)
$query = substr($qe, 7, $p2-7);//cuts from start position +7 (<title>) untill end position -2...
您只在结尾标题的末尾减去2,但在开始标题上添加7 尝试上面的代码,看看是否有效
编辑:
另一种解决方案是这样做。
$query = strip_tags(substr($qe, 0, $p2));
这会保存所有标题标签,但随后会使用strip_tags()
删除它们 EDIT2:
我建议的代码中还有其他一些东西。
$f = file_get_contents($url_to_load);
$query = strip_tags(substr($f, strpos($f, "<title>"), strpos($f, "</title>")));
此代码将其归结为两行代码并使用较少的变量。你也可以摆脱$ f,但它可能对其他东西很有用,它只是一个变量。