Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP的基本if/then_Php - Fatal编程技术网

使用PHP的基本if/then

使用PHP的基本if/then,php,Php,好的,所以我设置了这个东西,这样我可以打印出人们来自的页面,然后在某些页面上放置虚拟标签。有些页面注释掉了“linkto”标签,标签之间有文本 我的问题是,我的一些网页没有“链接到”文本。当我从那里链接到这个页面时,我希望它抓住“title”和“/title”之间的所有内容。我怎样才能更改eregi,以便在它变成空的时候,它应该抓住标题 这是我到目前为止所拥有的,我知道我只需要一些if/then,但我是一个初学者。提前感谢您的帮助: <?php $filesource = $_SERVER

好的,所以我设置了这个东西,这样我可以打印出人们来自的页面,然后在某些页面上放置虚拟标签。有些页面注释掉了“linkto”标签,标签之间有文本

我的问题是,我的一些网页没有“链接到”文本。当我从那里链接到这个页面时,我希望它抓住“title”和“/title”之间的所有内容。我怎样才能更改eregi,以便在它变成空的时候,它应该抓住标题

这是我到目前为止所拥有的,我知道我只需要一些if/then,但我是一个初学者。提前感谢您的帮助:

<?php
$filesource = $_SERVER['HTTP_REFERER'];
$a = fopen($filesource,"r"); //fopen("html_file.html","r");
$string = fread($a,1024);
?>
<?php
if (eregi("<linkto>(.*)</linkto>", $string, $out)) {
     $outdata = $out[1];
}
//echo $outdata;
$outdatapart = explode( " " , $outdata);
echo $part[0];
?> 

现在开始:如果eregi()无法匹配,$outdata分配将永远不会发生,因为不会执行if块。如果匹配,但标记之间没有任何内容,$outdata将被分配一个空字符串。在这两种情况下$outdata将为true,因此我们可以回退到title标记上的第二个匹配项

if(eregi("<linkto>(.*?)</linkto>", $string, $link_match)) {
    $outdata = $link_match[1];
}
if(!$outdata && eregi("<title>(.*?)</title>", $string, $title_match)) {
    $outdata = $title_match[1];
}
并在可能的情况下立即停止

顺便说一句,这是一个有趣的计划,但你为什么需要它呢?页面可以链接到其他页面,并通过查询字符串传递参数:

<a href="somescript.php?prevpage=Foo">...</a>

然后somescript.php可以通过$\u GET['prevpage']超全局变量访问prevpage参数

这能解决您的问题吗?

给您:如果eregi()无法匹配,$outdata分配将永远不会发生,因为if块将不会执行。如果匹配,但标记之间没有任何内容,$outdata将被分配一个空字符串。在这两种情况下$outdata将为true,因此我们可以回退到title标记上的第二个匹配项

if(eregi("<linkto>(.*?)</linkto>", $string, $link_match)) {
    $outdata = $link_match[1];
}
if(!$outdata && eregi("<title>(.*?)</title>", $string, $title_match)) {
    $outdata = $title_match[1];
}
并在可能的情况下立即停止

顺便说一句,这是一个有趣的计划,但你为什么需要它呢?页面可以链接到其他页面,并通过查询字符串传递参数:

<a href="somescript.php?prevpage=Foo">...</a>

然后somescript.php可以通过$\u GET['prevpage']超全局变量访问prevpage参数

这能解决你的问题吗?

你需要if,否则

if(eregi(...))
{
    .
    .
    .
}
else
{
    just grab title;
}
也许你应该在谷歌上快速搜索一下,找到这个非常简单的答案。

你需要if,else

if(eregi(...))
{
    .
    .
    .
}
else
{
    just grab title;
}

也许您应该在谷歌上快速搜索一下,找到这个非常简单的答案。

在将匹配项分配给
$outdata
之前,只需添加另一个
if
测试:

if (eregi("<linkto>(.*)</linkto>", $string, $out)) {
    if ($out[1] != "") {
        $outdata = $out[1];
    } else {
        // Look in the title.
    }
}
if(eregi((.*),$string,$out)){
如果($out[1]!=“”){
$outdata=$out[1];
}否则{
//看看标题。
}
}

在将匹配项分配给
$outdata
之前,只需添加另一个
测试:

if (eregi("<linkto>(.*)</linkto>", $string, $out)) {
    if ($out[1] != "") {
        $outdata = $out[1];
    } else {
        // Look in the title.
    }
}
if(eregi((.*),$string,$out)){
如果($out[1]!=“”){
$outdata=$out[1];
}否则{
//看看标题。
}
}
从PHP5.3.0开始,POSIX正则表达式扩展(ereg等)将被弃用,PHP6可能会完全消失,最好使用PCRE函数(preg_match and friends)

PCRE函数也更快,二进制安全,支持更多功能,如非贪婪匹配等

只是一个指针。

从PHP5.3.0开始,POSIX正则表达式扩展(ereg等)将被弃用,PHP6可能会完全消失,最好使用PCRE函数(preg_match and friends)

PCRE函数也更快,二进制安全,支持更多功能,如非贪婪匹配等


只是一个指针。

永远不要假设
$\u服务器[“HTTP\u REFERER”]
将是一个非空变量。这是一个不可靠的变量,因为浏览器和用户可以将此选项设置为不包含任何内容。切勿假定
$\u SERVER[“HTTP\u REFERER”]
将是非空变量。这是一个不可靠的变量,因为浏览器和用户可以将此选项设置为不包含任何内容。哇,他甚至说“我知道这是某种if语句”……我同意猴子可以在谷歌上搜索到这一点,但你不必如此恶作剧。是的,但我要在哪里找到猴子?!我知道怎么做“如果”我只是不知道怎么说“没有文本匹配这个”。谢谢你的帮助,我真的很感激。哇,他甚至说“我知道这是一种if语句”……我同意猴子可以用谷歌搜索到这个,但你不必这么他妈的咆哮。是的,但我要去哪里找猴子?!我知道怎么做“如果”我只是不知道怎么说“没有文本匹配这个”。谢谢你的帮助,我真的很感激。我不想改变所有的链接,因为我担心它会与正在传递的其他东西冲突。谢谢大家的帮助。我知道如何做if/then,但不知道如何说“如果没有文本匹配,他的描述就在那里”。我不想更改所有链接,因为我担心它会与正在传递的其他内容冲突。谢谢大家的帮助。我知道如何做if/then,但不知道如何说“如果没有文本匹配,他的描述就在那里”。