我在if语句中正确地放置URL函数时遇到了一些问题。下面的方法在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-function放在那里,那么新创建的链接将引用以下内容:实际上,它应该引用上面的URL "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.';
}发布于 2013-10-26 22:20:26
这个序列没有任何意义:
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
}
?>https://stackoverflow.com/questions/19607700
复制相似问题