ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingใช้ php ดึงค่าโดเมนยังไงครับ
หน้า: [1] 2  ทั้งหมด   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ใช้ php ดึงค่าโดเมนยังไงครับ  (อ่าน 2658 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
kkusd
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 311
ออฟไลน์ ออฟไลน์

กระทู้: 4,663



ดูรายละเอียด
« เมื่อ: 08 มกราคม 2013, 01:15:56 »

ลองมาหลายโค๊ตแล้วแต่ก็ยังไม่ได้เลย

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

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

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

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

medieval
สมุนแก๊งเสียว
*

พลังน้ำใจ: 70
ออฟไลน์ ออฟไลน์

กระทู้: 875



ดูรายละเอียด
« ตอบ #1 เมื่อ: 08 มกราคม 2013, 01:57:34 »

ถ้าชับไม่มีจุดแยกไปอีก แนะนำให้

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

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

kkusd
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 311
ออฟไลน์ ออฟไลน์

กระทู้: 4,663



ดูรายละเอียด
« ตอบ #2 เมื่อ: 08 มกราคม 2013, 02:10:05 »

มีจุดอีกหลายจุดเลยครับ

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

บันทึกการเข้า

ossytong
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 138
ออฟไลน์ ออฟไลน์

กระทู้: 1,151



ดูรายละเอียด
« ตอบ #3 เมื่อ: 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];
บันทึกการเข้า
UnLock UnlimiT
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 228
ออฟไลน์ ออฟไลน์

กระทู้: 1,899



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 08 มกราคม 2013, 02:23:04 »

ลองใช้

$site = $_SERVER['MY_DOMAIN'];

แจ้งด้วยนะครับไม่เคยใช้ ไปเจอแล้ว save ไว้เพื่อต้องใช้ฟังชั่นนี้
« แก้ไขครั้งสุดท้าย: 08 มกราคม 2013, 02:24:57 โดย UnLock UnlimiT » บันทึกการเข้า

งดรับซื้อ google ads ครับ Smiley
medieval
สมุนแก๊งเสียว
*

พลังน้ำใจ: 70
ออฟไลน์ ออฟไลน์

กระทู้: 875



ดูรายละเอียด
« ตอบ #5 เมื่อ: 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];
บันทึกการเข้า

rokaisakkon
ก๊วนเสียว
*

พลังน้ำใจ: 38
ออฟไลน์ ออฟไลน์

กระทู้: 459



ดูรายละเอียด
« ตอบ #6 เมื่อ: 08 มกราคม 2013, 02:29:35 »

ส่วนมาก เขาเขียนไว้ใน ไฟล์  setting  แล้ว  include  ไปใช้กัน
บันทึกการเข้า

#วงการฟรีแลนซ์มันโหดน่ะครับ
lojoman
คนรักเสียว
*

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 111



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 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
บันทึกการเข้า


ขายประกันชีวิตด้วยนะครับ สนใจ PM   มาได้นะครับรับเฉพาะเชียงใหม่ ลำพูน นะครับ
MapTwoZa
ก๊วนเสียว
*

พลังน้ำใจ: 75
ออฟไลน์ ออฟไลน์

กระทู้: 366



ดูรายละเอียด
« ตอบ #8 เมื่อ: 08 มกราคม 2013, 04:29:15 »

ใช้ regular expression ดึงจาก $_SERVER['SERVER_NAME']ครับ

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

ถ้าเผื่อใช้กับ localhost ด้วยก็เปลี่ยนเป็น ((?:[\w]+\.)?[\w]+)$
« แก้ไขครั้งสุดท้าย: 08 มกราคม 2013, 04:35:29 โดย MapTwoZa » บันทึกการเข้า

Good code quality Developer Cheesy
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #9 เมื่อ: 08 มกราคม 2013, 05:45:02 »

โอ๊ววเจอเทพ php เต็มเลย
ตามมาเก็บเข้าคลงแสง  wanwan017
บันทึกการเข้า

เหนื่อย..
@Sam
Newbie
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 54



ดูรายละเอียด
« ตอบ #10 เมื่อ: 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
บันทึกการเข้า
WPDSign
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 500
ออฟไลน์ ออฟไลน์

กระทู้: 9,060



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 08 มกราคม 2013, 11:01:31 »

เก็บความรู้ เคยใช้แต่แบบบ้านๆ
บันทึกการเข้า

สร้างบ้าน Modern แบบบ้านโมเดิร์น มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ แบบบ้านสองชั้น ทุกสไลต์บริการรับสร้างบ้าน ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มีแบบบ้านสไตล์รีสอร์ท พร้อมก่อสร้าง ลงประกาศขายบ้านที่ ลงประกาศ
psuriya
สมุนแก๊งเสียว
*

พลังน้ำใจ: 29
ออฟไลน์ ออฟไลน์

กระทู้: 717



ดูรายละเอียด
« ตอบ #12 เมื่อ: 08 มกราคม 2013, 11:32:24 »


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

ลองใช้ดูครับ
บันทึกการเข้า

รับพัฒนาและแก้ไขเว็บไซต์ด้วย Django
thatthep
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 29



ดูรายละเอียด
« ตอบ #13 เมื่อ: 08 มกราคม 2013, 17:10:43 »

ใส่ไว้ใน config แล้ว include เอาน่าจะง่ายกว่านะครับ
บันทึกการเข้า
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 08 มกราคม 2013, 17:17:23 »

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

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

MapTwoZa
ก๊วนเสียว
*

พลังน้ำใจ: 75
ออฟไลน์ ออฟไลน์

กระทู้: 366



ดูรายละเอียด
« ตอบ #15 เมื่อ: 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();
« แก้ไขครั้งสุดท้าย: 09 มกราคม 2013, 02:47:42 โดย MapTwoZa » บันทึกการเข้า

Good code quality Developer Cheesy
ramtan
คนรักเสียว
*

พลังน้ำใจ: 17
ออฟไลน์ ออฟไลน์

กระทู้: 160



ดูรายละเอียด เว็บไซต์
« ตอบ #16 เมื่อ: 09 มกราคม 2013, 14:56:52 »

ตามมาเก็บความรู้ครับ อยากตอบแต่กลัวพลาด ขอเก็บไป test ก่อนละกันครับ  wanwan023
บันทึกการเข้า

adidog
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 238
ออฟไลน์ ออฟไลน์

กระทู้: 1,859



ดูรายละเอียด เว็บไซต์
« ตอบ #17 เมื่อ: 09 มกราคม 2013, 15:10:52 »

ตามมาเก็บความรู้  wanwan017 wanwan017 wanwan017
บันทึกการเข้า

Certain Dri Certain Dri
คุณแม่มือใหม่ คุณแม่มือใหม่
kkusd
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 311
ออฟไลน์ ออฟไลน์

กระทู้: 4,663



ดูรายละเอียด
« ตอบ #18 เมื่อ: 10 มกราคม 2013, 14:53:47 »

ติดงานประจำไม่ได้เข้ามาเลย

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

 wanwan017 wanwan017
บันทึกการเข้า

kkusd
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 311
ออฟไลน์ ออฟไลน์

กระทู้: 4,663



ดูรายละเอียด
« ตอบ #19 เมื่อ: 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
บันทึกการเข้า

หน้า: [1] 2  ทั้งหมด   ขึ้นบน
พิมพ์