ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: kkusd ที่ 08 มกราคม 2013, 01:15:56



หัวข้อ: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: kkusd ที่ 08 มกราคม 2013, 01:15:56
ลองมาหลายโค๊ตแล้วแต่ก็ยังไม่ได้เลย

ปกติผมใช้ $site = "domain.com"; แล้วก็เรียกใช้ค่า $site (อยากให้ php ดึงค่าโดเมนให้เลย ไม่ต้องมาแก้ทีละไฟล์)

ผมลองไปใช้ $site = $_SERVER['SERVER_NAME']; ตัวนี้จะดึงค่าโดเมนมาให้ด้วย

แต่พอไปอยู่หน้าซับโดเมน เช่น aaa.domain.com ค่าของ site จะเป็น aaa.domain.com ด้วยเหมือนกัน

ทำยังไงถึงจะให้ค่าของ $site เป็น domain.com ตลอด ไม่เอาซับโดเมนมาด้วยครับ


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: medieval ที่ 08 มกราคม 2013, 01:57:34
ถ้าชับไม่มีจุดแยกไปอีก แนะนำให้

$site= explode(".",$site);
$site = $site[1].".".$site[2];

แบบนี้ก็น่าจะได้ละครับ


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: kkusd ที่ 08 มกราคม 2013, 02:10:05
มีจุดอีกหลายจุดเลยครับ

aaa.bbb.ccc.domain.com
a.b.c.d.e.domain.com



หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: ossytong ที่ 08 มกราคม 2013, 02:21:03
มีจุดอีกหลายจุดเลยครับ

aaa.bbb.ccc.domain.com
a.b.c.d.e.domain.com


$site = $_SERVER['SERVER_NAME'];
$string = explode(".", $site);
$domain = $string[count($string)-2].'.'.$string[count($string)-1];


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: UnLock UnlimiT ที่ 08 มกราคม 2013, 02:23:04
ลองใช้

$site = $_SERVER['MY_DOMAIN'];

แจ้งด้วยนะครับไม่เคยใช้ ไปเจอแล้ว save ไว้เพื่อต้องใช้ฟังชั่นนี้


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: medieval ที่ 08 มกราคม 2013, 02:26:12
ตอนติดตั้งไม่ได้ใช้ชื่อโดเมนใส่เข้าไปหรอครับ หรือจะเอาส่วนอื่น

ผมคิดออกตอนนี้ก็คือ
$site = $_SERVER['SERVER_NAME'];
$site= explode(".",$site);
$n = count($site);
$site = $site[$n-2].".".$site[$n-1];


ถ้าจะเอา url part ก็อันนี้ครับ

$site = $_SERVER[REQUEST_URI];


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: rokaisakkon ที่ 08 มกราคม 2013, 02:29:35
ส่วนมาก เขาเขียนไว้ใน ไฟล์  setting  แล้ว  include  ไปใช้กัน


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: lojoman ที่ 08 มกราคม 2013, 02:55:48
function getdomain($url) {
    preg_match (
        "/^(http:\/\/|https:\/\/)?([^\/]+)/i",
        $url, $matches
    );
    $host = $matches[2];
    preg_match (
        "/[^\.\/]+\.[^\.\/]+$/",
        $host, $matches
    );
       return strtolower("{$matches[0]}");


ลองดูถ้าอยากรู้ดีกะต้องลองดู   :wanwan019:


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: MapTwoZa ที่ 08 มกราคม 2013, 04:29:15
ใช้ regular expression ดึงจาก $_SERVER['SERVER_NAME']ครับ

([\w]+\.[\w]+)$

ถ้าเผื่อใช้กับ localhost ด้วยก็เปลี่ยนเป็น ((?:[\w]+\.)?[\w]+)$


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: $100perday ที่ 08 มกราคม 2013, 05:45:02
โอ๊ววเจอเทพ php เต็มเลย
ตามมาเก็บเข้าคลงแสง  :wanwan017:


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: @Sam ที่ 08 มกราคม 2013, 08:01:41
โค๊ด:
function domain($domainb) {
$bits = explode('/', $domainb);
if($bits[0] == 'http:' || $bits[0] == 'https:') {
$domainb = $bits[2];
} else {
$domainb = $bits[0];
}
unset($bits);
$bits = explode('.', $domainb);
$idz = count($bits);
$idz -= 3;
if(strlen($bits[($idz+2)]) == 2) {
$url = $bits[$idz].'.'.$bits[($idz+1)].'.'.$bits[($idz+2)];
} else if(strlen($bits[($idz+2)])==0) {
$url = $bits[($idz)].'.'.$bits[($idz+1)];
} else {
$url = $bits[($idz+1)].'.'.$bits[($idz+2)];
}
return $url;
}

 :wanwan004: :wanwan004: :wanwan004: :wanwan004:


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: WPDSign ที่ 08 มกราคม 2013, 11:01:31
เก็บความรู้ เคยใช้แต่แบบบ้านๆ


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: psuriya ที่ 08 มกราคม 2013, 11:32:24

$domain = explode('.', $_SERVER['HTTP_HOST']);
$tld = array_pop($domain);
$name = array_pop($domain);
$root_domain = "$name.$tld";

ลองใช้ดูครับ


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: thatthep ที่ 08 มกราคม 2013, 17:10:43
ใส่ไว้ใน config แล้ว include เอาน่าจะง่ายกว่านะครับ


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: xvlnw.com ที่ 08 มกราคม 2013, 17:17:23
ถ้าเป็นผมนะ ผมเลือกใช้ตัวแปรแบบ define แล้วเก็บไว้ในไฟล์ php แล้วใช้การ include ไปใช้งานนะครับ
ส่วนหนึ่งก็เพื่อการเขียนโค๊ดที่ดีครับ ไม่ต้องให้ PHP มันประมวลผลอะไรมากมายนัก อาจจะไม่เห็นผลเท่าไร แต่มันก็เป็นการ Optimize Code ที่ดีครับ

เหนื่อยตั้งค่าแค่แปปเดียว คงไม่ลำบากมากไปหรอกครับ
 :wanwan020:


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: MapTwoZa ที่ 09 มกราคม 2013, 01:29:08
ผสมทุกๆอย่างให้และกัน


function getServerNameWithoutSubdomain(){
    defined('SERVER_NAME_WITHOUT_SUBDOMAIN') || define('SERVER_NAME_WITHOUT_SUBDOMAIN', generateServerName());
    return SERVER_NAME_WITHOUT_SUBDOMAIN;
}
function generateServerName(){
   $result = '';
   $pattern = '%((?:[\w]+\.)?[\w]+)$%';
   preg_match($pattern, $_SERVER['SERVER_NAME'], $result);
   return $result[1];
}  


##ServernameConfig.php##
โค๊ด:
<?php
function getServerNameWithoutSubdomain(){
    
defined('SERVER_NAME_WITHOUT_SUBDOMAIN') || define('SERVER_NAME_WITHOUT_SUBDOMAIN'generateServerName());
    return 
SERVER_NAME_WITHOUT_SUBDOMAIN;
}
function 
generateServerName(){
   
$result '';
   
$pattern '%((?:[\w]+\.)?[\w]+)$%';
   
preg_match($pattern$_SERVER['SERVER_NAME'], $result);
   return 
$result[1];
}  

##test.php##
โค๊ด:
<?php
require_once 'ServernameConfig.php';
echo 
getServerNameWithoutSubdomain();


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: ramtan ที่ 09 มกราคม 2013, 14:56:52
ตามมาเก็บความรู้ครับ อยากตอบแต่กลัวพลาด ขอเก็บไป test ก่อนละกันครับ  :wanwan023:


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: adidog ที่ 09 มกราคม 2013, 15:10:52
ตามมาเก็บความรู้  :wanwan017: :wanwan017: :wanwan017:


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: kkusd ที่ 10 มกราคม 2013, 14:53:47
ติดงานประจำไม่ได้เข้ามาเลย

ขอบคุณทุกๆคนมากครับ +1 ให้ทุกคนครับ

 :wanwan017: :wanwan017:


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: kkusd ที่ 11 มกราคม 2013, 03:30:57
ผสมทุกๆอย่างให้และกัน


function getServerNameWithoutSubdomain(){
    defined('SERVER_NAME_WITHOUT_SUBDOMAIN') || define('SERVER_NAME_WITHOUT_SUBDOMAIN', generateServerName());
    return SERVER_NAME_WITHOUT_SUBDOMAIN;
}
function generateServerName(){
   $result = '';
   $pattern = '%((?:[\w]+\.)?[\w]+)$%';
   preg_match($pattern, $_SERVER['SERVER_NAME'], $result);
   return $result[1];
}  


##ServernameConfig.php##
โค๊ด:
<?php
function getServerNameWithoutSubdomain(){
    
defined('SERVER_NAME_WITHOUT_SUBDOMAIN') || define('SERVER_NAME_WITHOUT_SUBDOMAIN'generateServerName());
    return 
SERVER_NAME_WITHOUT_SUBDOMAIN;
}
function 
generateServerName(){
   
$result '';
   
$pattern '%((?:[\w]+\.)?[\w]+)$%';
   
preg_match($pattern$_SERVER['SERVER_NAME'], $result);
   return 
$result[1];
}  

##test.php##
โค๊ด:
<?php
require_once 'ServernameConfig.php';
echo 
getServerNameWithoutSubdomain();

ตัวนี้ใช้ได้โอเคเลยครับ  :wanwan017: :wanwan017:


หัวข้อ: Re: ใช้ php ดึงค่าโดเมนยังไงครับ
เริ่มหัวข้อโดย: x1991z ที่ 11 มกราคม 2013, 05:41:52
ขอด้วยนะๆ