2013-07-16 2 views
-1

Это функция, получить имя хоста из URL:получить имя хоста из 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> 

Может ли кто-нибудь мне помочь?

+3

1) Положите его в верхней части файла 2) Done – Ryan

+0

Я предлагаю использовать [PDO] (http://www.php.net/manual/en/pdo.construct.php) для PHP доступ к базе данных как mysql_ * будет амортизирован как php 5.5 – user1759572

+0

И прекратите использовать функцию 'mysql', и дайте' PDO' или 'MySQLi' попытку – samayo

ответ

1

Почему вы просто не копируете свою функцию get_domain() в другой файл сразу после функции подключения? Это должно сработать!

+0

Мне нужно положить это в эту строку: печать ''.$row['moviename'].'
'; – user2588559

+0

Попробуйте следующее: print ''.$row['moviename'].'
'; – arielcr

+0

arielcr :(no dude it dont work :( i dont want "fileflyer.com" Я пытаюсь вставить ссылку из базы данных. $ Row ['links']. – user2588559

0

Функция, которую вы написали, может быть использована в любом месте внутри того же файла, который был объявлен, это не обязательно должно быть сразу после этого - действительно, это часть того, что она является функцией в первую очередь! Так добавить определение функции в начало файла рядом с определением function connect(...), а затем в вашем HTML, вы можете просто использовать:

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

(Обратите внимание, что я использовал echo, а не print - они сделать то же самое, но echo - это наиболее часто используемое имя в PHP.)

По мере роста вашей программы вы, вероятно, захотите поместить свои определения функций в файл и повторно использовать их на нескольких страницах и даже сгруппировать в них категорий и т. д. Это то, что include and require (и их варианты include_once и require_once) предназначены для.

Edit: Так как ваша функция возвращает часть домена (я не уверен, не ясно, что ваша функция делает это parse_url не уже, но и не против), это приведет к ссылкам, как <a href="exmple.com">...</a> которая связала бы к страница example.comна вашем сайте. Фактически вы можете сделать это «абсолютным» URL-адресом, предварительно используя '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 />'; 
+0

Я хочу напечатать строку $ row [ «ссылки»]. и . $ строки [ «MovieName»] и добавить к ним get_domain ($ строки [ «ссылки»] пожалуйста, помогите мне сделать это! – user2588559

+0

что ваша проблема? Вы можете печатайте столько вещей, сколько хотите. – IMSoP