2013-01-09 42 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

相关问题