2013-10-26 35 views
0

我有一些問題需要在if語句中正確放置一個URL函數。下面的方法工作我if語句的罰款之外,新創建的鏈接指向這個URL:「H ** P://www.blog.com/位置=伯爾尼&日期= 1」如何在if語句中添加鏈接?

<?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/),那麼If-Statement也可以正常工作,那麼如果我把上面的URL函數放在那裏,那麼新創建的鏈接就是這樣的:「h ** p: //www.blog.com/%3C?php%20echo%20preg_replace%28" 。其實這應該是指以上網址的 「h ** P://www.blog.com/位置=伯爾尼&日期= 1」

URL-功能中的if語句:

<?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.'; 
} 
+2

什麼是'$ _ SERVER [\ REQUEST_URI \])'完全一樣? – PeeHaa

+0

@PeeHaa OP可能是爲了逃避顯然不在那裏的雙引號。這是我的承擔。 –

+0

首先將'$ _SERVER [\ REQUEST_URI \]'更改爲'$ _SERVER ['REQUEST_URI']「---。或者如果你想逃避雙引號,應該讀作''_SERVER [\「REQUEST_URI \」]'或'$ _SERVER [\'REQUEST_URI \']' –

回答

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 
} 
?> 
+0

$ _SERVER [\ REQUEST_URI \\]不好? – jacouh

+0

@jacouh您是否認爲該評論是PeeHaa對該問題的評論的答案?在我的回答中,我甚至沒有提到這一點。 – IMSoP

+0

@jacouh它應該讀作'$ _SERVER ['REQUEST_URI']'---'$ _SERVER [\ REQUEST_URI \]'確實是不正確的。 –