如何在if语句中添加链接?

时间:2013-10-26 14:11:11

标签: php if-statement hyperlink

我在将一个URL函数正确放入if语句时遇到了一些问题。以下方法在我的if语句之外工作正常,新创建的链接引用此URL:“h ** p://www.blog.com/?location = Bern& date = 1”

<?php $rasp = $_GET["location"]; ?>
<a href="<?php echo preg_replace("/&date=(0|1|2|3)/", "", $_SERVER[\REQUEST_URI\])."&date=0"; ?> " >Heutel</a>

当我在引号之间插入一个URL(例如https://www.google.com/)时,如果_语句也正常工作,那么如果我把URL函数放在那里,那么新创建的链接就是这样的: “H ** p://www.blog.com/%3C PHP%20echo%20preg_replace%28”。实际上应该参考上面的网址“h ** p://www.blog.com/?location = Bern&amp; date = 1”

if-statement中的URL函数:

<?php $url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (false !== strpos($url,'date=1')) { echo 

'<?php $rasp = $_GET["location"]; ?>
<a href="<?php echo preg_replace("/&date=(0|1|2|3)/", "", $_SERVER[\REQUEST_URI\])."&date=0"; ?> " >Heutel</a> ' ;


} else {
 echo 'No cars.';
}  ?>

有什么想法吗?

感谢IMSop解决方案:

<?php 
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (false !== strpos($url,'date=1')) {
?>
<a href="<?php echo preg_replace("/&date=(0|1|2|3)/", "", $_SERVER['REQUEST_URI'])."&date=0"; ?> " >Heutel</a>
<?php
} 

else {
 echo 'No cars.';
}

1 个答案:

答案 0 :(得分:1)

这个顺序毫无意义:

echo '<a href="<?php echo ...

引用的字符串和<?php ... ?>标记之外的直接输出是完全不同的东西。 '启动一个字符串,该字符串将一直持续到您放入另一个'; <?php如果你不在一个PHP代码中就会启动它,但你已经是 - 如果你不是echo则不会有任何意义。

要将多个字符串连接在一起,您可以使用.(“连接”)运算符:

echo '<a href="' . preg_replace(...) . '">>Heutel</a>';

或者,退出PHP模式,就像之前一样,但if就位:

<?php 
// In PHP mode...
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (false !== strpos($url,'date=1')) {
// Now leaving PHP mode, but still inside the if condition...
?>
<a href="<?php echo preg_replace("/&date=(0|1|2|3)/", "", $_SERVER['REQUEST_URI'])."&date=0"; ?> " >Heutel</a>
<?php
// Re-enter PHP mode to close off the if statement
}

甚至还有一个alternative syntax for control syntax,有些人喜欢在这样的情况下使用:

<?php 
if ($some_condition) :
?>
your output here
<?php
endif;
?>

完全相同
<?php 
if ($some_condition) {
?>
your output here
<?php
}
?>