2012-03-16 132 views
0

理想情況下,我想將php腳本用作包含在每個頁面上的包含。用str_replace編輯鏈接時遇到問題

我有鏈接:http://www.facebook.com/sharer.php?u=http://123.456.789.101/~user/file.php

,我想使它看起來像這樣:http://www.facebook.com/sharer.php?u=http://MyUrl.com/file.php

基本上我要替換 「123.456.789.101/~user」 與 「MyUrl.com」

我將需要更改多個鏈接。此外,每個頁面的文件名「file.php」部分都會發生變化。我不知道確切的頁面名稱是什麼。

我試過這個,但它不起作用。如果我回顯str_replace它給了我正確的鏈接,但我無法獲得新鏈接來替換頁面中的舊鏈接。

<?php 
$string = 'http://www.facebook.com/sharer.php?u=http://123.456.789.101/~user'; 
$pattern = '123.456.789.101/~user'; 
$replacement = 'MyUrl.com'; 
str_replace($pattern, $replacement, $string); 
?> 

非常感謝。

回答

0

試試這個

<?php 
$string = 'http://www.facebook.com/sharer.php?u=http://123.456.789.101/~user'; 
$pattern = '123.456.789.101/~user'; 
$replacement = 'MyUrl.com'; 
$newString = str_replace($pattern, $replacement, $string); 
echo $newString; 
?> 

在HTML中使用替代:

<a href="<?php echo $newString ?>>Anchor Text Here</a> 
+0

我將如何獲得newString來替換舊的鏈接? – BostonBB 2012-03-16 21:56:43

+0

以下是網站中的全部代碼?

  • F
  • BostonBB 2012-03-16 21:57:36

    +0

    看到我上面的編輯 – 2012-03-16 21:59:46

    1

    您需要設置新的字符串。 str_replace返回新的字符串,它不會自行設置它。

    $string = str_replace($pattern, $replacement, $string); 
    

    如果您需要替換多個IP,您應該查看使用正則表達式。

    +0

    Beaz,對不起,我是新來這個。你的意思是什麼「正則表達式?」 我只有一個IP需要更改。 我遇到的困難是獲取新字符串來替換舊字符串。 謝謝 – BostonBB 2012-03-16 21:58:52

    +0

    @BostonBB您是否嘗試過將該代碼插入到您的項目中?變量'$ string'將包含替換的值。如果你只需要匹配一個IP地址,那麼使用str_replace就沒有問題。 – 2012-03-16 22:00:55