从url获取主机名

时间:2013-07-16 22:46:46

标签: php url get host

这是从URL获取主机名的函数:

<?php

function get_domain($url)
{
  $pieces = parse_url($url);
  $domain = isset($pieces['host']) ? $pieces['host'] : '';
  if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
    return $regs['domain'];
  }
  return false;
}

print get_domain("http://fileflyer.com"); 

?>

我想在此文件中插入此功能:

<?php
function connect($host,$username,$database,$password){
 $to_connect = mysql_connect($host,$username,$password) or die ("UNFinded ".$username. " DB !");
 $db = mysql_select_db($database, $to_connect) or die (mysql_error());
 return $db;
}
connect("localhost","idevice2_ariel","idevice2_ariel","ariel123456");


if (!isset($_POST['submit_form'])) {
    echo '<form name="search_form1" id="form" method="POST" action="search.php">
<input type="text" style="width: 300px; display: block; margin: 0 auto; height: 36px; text-align: center; font-size: 16px;" name="search_name" placeholder="חפש סרט או סדרה.." />
<input type="submit" value="Submit" name="submit_form" />
</form>';
} else {
       $search_name = $_POST['search_name'];
       $query = mysql_query("SELECT * FROM `members` WHERE (`moviename` like '%".$search_name."%')");
       $count = mysql_num_rows($query);
       while($row = mysql_fetch_array($query)) {
       $fname = $row['moviename'];
       $lname = $row['links'];
       **print '<a href="'.**$row['links']**.'">'.$row['moviename'].'</a><br />'; 

我想从

获取主机名
$row['links']


}
}
mysql_close($to_connect);
?>
<html>
<head>
<style type="text/css">
a {

}
</style>
</head>
<body>
</body>
</html>

有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

为什么你不在connect函数之后将get_domain()函数复制到另一个文件中?这应该有效!

答案 1 :(得分:0)

您编写的函数可以在声明的同一个文件中的任何位置使用,不一定要立即使用 - 事实上,这是它首先成为函数的一部分!因此,将您的函数定义添加到function connect( ... )定义旁边的文件顶部,然后在HTML中,您可以使用它:

echo '<a href="'.get_domain($row['links']).'">'.$row['moviename'].'</a><br />';

(请注意,我使用的是echo而不是print - 它们执行相同的操作,但echo是PHP中更常用的名称。)

随着程序的增长,您可能希望将函数定义放入文件中并在多个页面中重用它们,甚至将它们分组到类别中,依此类推。这是include and require(及其变体include_oncerequire_once)的用途。

编辑:由于你的函数返回了域的一部分(我不清楚你的函数是什么做的parse_url还没有,但没关系),这将导致像<a href="exmple.com">...</a>这样的链接会链接到您网站上名为example.com 的网页。实际上,您可能希望通过添加'http://'前缀(例如

)将其设置为“绝对”URL
echo '<a href="http://'.get_domain($row['links']).'">'.$row['moviename'].'</a><br />';

即使您的网站上有这样的页面,您可能希望相对于域的根目录而不是当前目录中的URL,在这种情况下,您需要一个前导'/'

echo '<a href="/'.get_domain($row['links']).'">'.$row['moviename'].'</a><br />';