-1

这是从 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>

有人可以帮助我吗?

4

2 回答 2

1

为什么你不把你的get_domain()函数复制到另一个文件中,就在连接函数之后?那应该工作!

于 2013-07-16T22:50:27.560 回答
0

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

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

(请注意,我使用echo了而不是print- 它们做同样的事情,但echo它是 PHP 中更常用的名称。)

随着程序的增长,您可能希望将函数定义放入一个文件并在多个页面中重用它们,甚至将它们分组到类别中,等等。这就是includeandrequire(及其变体include_onceand require_once)的用途。

编辑:由于您的函数返回域的一部分(我不清楚您的函数parse_url已经做了什么,但没关系),这将导致链接像which 将链接到在您的站点<a href="exmple.com">...</a>上调用的页面。您实际上可能希望通过添加前缀将其变为“绝对”URL ,例如example.com 'http://'

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

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

echo '<a href="/'.get_domain($row['links']).'">'.$row['moviename'].'</a><br />';
于 2013-07-16T23:28:33.067 回答