如何在 if 语句中添加链接


How to add link within if-statement?

我在将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/)时,如果 Statement(例如 )也可以正常工作,那么如果我将上面的 URL 函数放在那里,新创建的链接引用了这个:"h**p://www.blog.com/%3C?php%20echo%20preg_replace%28"。实际上它应该引用上面的网址"h**p://www.blog.com/?location=Bern&date=1"

if-语句中的 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.';
}

这个序列没有意义:

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

带引号的字符串和<?php ... ?>标记之外的直接输出是完全不同的东西。'开始一个字符串,该字符串将持续到您输入另一个';如果你不在 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
}

甚至还有一种用于控制语法的替代语法,有些人喜欢在这样的情况下使用:

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

<?php 
if ($some_condition) {
?>
your output here
<?php
}
?>