2013-01-09 74 views
0

我已經把一個PHP代碼獲取當前頁面的URL,現在我可以通過編寫這些代碼我可以使用PHP打印作爲輸入字段的默認值嗎?

<?php print(selfURL()); ?> 

現在把當前頁面的URL,我想知道我怎麼可以這樣寫代碼作爲輸入的默認值領域? 其實我想要輸入字段自動填寫當前頁面的URL。

當我使用<?php print(selfURL()); ?>作爲value="<?php print(selfURL()); ?>"它簡單地顯示一個文本並且不顯示當前的URL。但是,當我把它粘貼在其他地方,那麼它的工作正常。

有什麼建議嗎?

更新:

夥計們,這是頁面的完整代碼,可能是它幫助!

<?php 
function selfURL() { $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI']; } function strleft($s1, $s2) { return substr($s1, 0, strpos($s1, $s2)); } 
?> 
<?php 
// Start YOURLS engine 
require_once(dirname(__FILE__).'/includes/load-yourls.php'); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<title>YOURLS Public Interface Sample</title> 
<style> 
body { 
    background:#E3F3FF; 
    color:#595441; 
    font:16px/30px verdana,arial,sans-serif; 
} 
a, a:visited {color:#2A85B3} 
h1 {text-align:center; color:#2A85B3} 
h2 { 
    border-bottom:1px solid #2A85B3; 
    color:#2A85B3; 
    margin-left:-10px; 
    padding-left:25px; 
    width:80%; 
} 
#container { 
    width: 780px; 
    margin-left: auto; 
    margin-right: auto; 
    background-color: #fff; 
    border: 3px solid #2A85B3; 
    padding: 10px; 
    margin-top: -13px; 
    -moz-border-radius:15px; 
    -webkit-border-radius:15px; 
} 
#footer { 
    text-align:center; 
    margin-top:20px; 
} 
#footer p { 
    padding:5px; 
    background:white; 
    margin:0 auto; 
    width:750px; 
    -moz-border-radius:10px; 
    border-radius:10px; 
    -webkit-border-radius:10px; 
    border:1px solid #2A85B3; 
    -moz-border-radius-bottomleft:35px; 
    -moz-border-radius-bottomright:35px; 
    -webkit-border-bottom-left-radius:25px; 
    -webkit-border-bottom-right-radius:25px; 
} 
#footer p a { 
    background:#fff url(http://yourls.org/images/favicon.gif) 2px center no-repeat; 
    padding-left:20px; 
} 
div#copybox { width:600px; height:auto;} 
div#sharebox {height:auto; width:600px; margin-top:20px;} 
</style> 
<link rel="stylesheet" href="<?php echo YOURLS_SITE; ?>/css/share.css?v=<?php echo YOURLS_VERSION; ?>" type="text/css" media="screen" /> 
<script src="<?php echo YOURLS_SITE; ?>/js/jquery-1.6.1.min.js" type="text/javascript"></script> 
<script src="<?php echo YOURLS_SITE; ?>/js/ZeroClipboard.js?v=<?php echo YOURLS_VERSION; ?>" type="text/javascript"></script> 
<script type="text/javascript">ZeroClipboard.setMoviePath('<?php echo YOURLS_SITE; ?>/js/ZeroClipboard.swf');</script> 
<script src="<?php echo YOURLS_SITE; ?>/js/share.js?v=<?php echo YOURLS_VERSION; ?>" type="text/javascript"></script> 
</head> 

<body> 
<h1>YOURLS: Your Own URL Shortener</h1> 

<div id="container"> 

    <?php 

    // Part to be executed if FORM has been submitted 
    if (isset($_REQUEST['url'])) { 

     $url  = yourls_sanitize_url($_REQUEST['url']); 

     $return = yourls_add_new_link($url); 

     $shorturl = isset($return['shorturl']) ? $return['shorturl'] : ''; 


     echo <<<RESULT 
     <h2>URL has been shortened</h2> 
     <p>Original URL: <code><a href="$url">$url</a></code></p> 
     <p>Short URL: <code><a href="$shorturl">$shorturl</a></code></p> 

RESULT; 



    // Part to be executed when no form has been submitted 
    } else { 

     $site = YOURLS_SITE; 

     echo <<<HTML 
     <h2>Enter a new URL to shorten</h2> 
     <form method="post" action=""> 
     <p><label>URL: <input type="text" name="url" value="<?php echo selfURL(); ?>" size="70" /></label></p> 
     <p><label>Optional custom keyword: $site/<input type="text" name="keyword" size="8" /></label></p> 
     <p><label>Optional title: <input type="text" name="title" size="57" /></label></p> 
     <p><input type="submit" value="Shorten" /></p> 
     </form> 
HTML; 

    } 

    ?> 


</div> 





<?php print(selfURL()); ?> 

</body> 
</html> 
+0

你是什麼意思「的意思是當我使用<?PHP print(selfURL());?> as value =「<?php print(s elfURL()); ?「它簡單地顯示一個文本,不顯示當前的網址」?有點困惑 –

+0

對不起,我想要當前頁面URL作爲輸入字段的默認值。所以我添加了這些代碼。 您可以查看上面的完整頁面代碼。 – Taimoor

+0

@Taimoor:解釋你得到的文字。一般來說,如果您在將考慮導航的錨標記的href屬性中打印該字符串,則URL是一個字符串。如果您在文本框中輸入url字符串作爲值,則只能以文本形式顯示。您無法使用任何用戶操作進行導航。清楚,你究竟想要達到什麼目的? –

回答

0
下面

方案如下:

$_SERVER['PHP_SELF'];
測試的代碼是如下

<input type="text" name="" id="" value="<?php echo $_SERVER['PHP_SELF']; ?>"/>

你的代碼編輯

$var = $_SERVER['PHP_SELF']; 
OR 
$var = selfURL(); 

<p><label>URL: <input type="text" name="url" value="$var" size="70" /></label></p>

您在her-doc語法中添加了php,這就是錯誤

+0

使用此代碼獲取此錯誤: 解析錯誤:語法錯誤,意想不到的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING – Taimoor

+0

可能是你應該嘗試打印,而不是回聲 –

+0

有沒有什麼錯這個代碼必須在你的聲明問題你已經嘗試過什麼代碼...是你添加它在PHP塊。?因爲如果您在轉義單引號或雙引號時遇到問題,則會發生此錯誤。 –

2

試試這個,

<input name="textVal" type="text" val=<?php echo selfURL(); ?> /> 
+0

它沒有幫助:( – Taimoor

+0

由於用戶已更新他的問題,您可以更改您的答案或刪除相同的,所以它不會誤導其他SO夥伴:) – Rikesh

1

您可以使用下面的樣子。

方法1

<input name="myinput" type = "text" value = "<?php print(selfURL()); ?>" /> 

方法2

<input name="myinput" type = "text" value = "<?php echo selfURL(); ?>" /> 

問題已更新的答案後

<input type="text" name="" id="" value="<?php echo $_SERVER['PHP_SELF']; ?>"/> 
+0

沒有收穫!我已經添加了完整的頁面代碼,現在可以檢查了嗎? – Taimoor

+0

您是否嘗試過這兩種方法?你檢查函數是否返回一個字符串? – Techie

+0

是的,我檢查了他們兩人......他們都只是簡單地顯示爲文本,並不顯示當前頁面的網址。 – Taimoor

相關問題