Windows Vista에서 XAMPP 를 사용하고 있습니다. 내 개발에서 나는http://127.0.0.1/test_website/
.
어떻게받을 수 있나요 http://127.0.0.1/test_website/
PHP로?
나는 이것과 같은 것을 시도했지만 그들 중 어느 것도 효과가 없었다.
echo dirname(__FILE__)
or
echo basename(__FILE__);
etc.
답변
이 시도:
<?php echo "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; ?>
$_SERVER
사전 정의 된 변수 에 대해 자세히 알아보십시오 .
https를 사용하려는 경우 다음을 사용할 수 있습니다.
function url(){
return sprintf(
"%s://%s%s",
isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http',
$_SERVER['SERVER_NAME'],
$_SERVER['REQUEST_URI']
);
}
echo url();
#=> http://127.0.0.1/foo
당 이 답변 , 안전하게에 의존 할 수 있도록 제대로 아파치를 구성 할 수 있는지 확인하십시오 SERVER_NAME
.
<VirtualHost *>
ServerName example.com
UseCanonicalName on
</VirtualHost>
참고 : HTTP_HOST
사용자 입력이 포함 된 키 에 의존하는 경우 에도 정리, 공백, 쉼표, 캐리지 리턴 등을 제거해야합니다. 도메인에 유효한 문자가 아닌 것은 무엇이든해야합니다. PHP 내장 parse_url 함수를 확인하십시오 .
답변
경고없이 실행되도록 조정 된 기능 :
function url(){
if(isset($_SERVER['HTTPS'])){
$protocol = ($_SERVER['HTTPS'] && $_SERVER['HTTPS'] != "off") ? "https" : "http";
}
else{
$protocol = 'http';
}
return $protocol . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}
답변
재미있는 ‘base_url’스 니펫!
if (!function_exists('base_url')) {
function base_url($atRoot=FALSE, $atCore=FALSE, $parse=FALSE){
if (isset($_SERVER['HTTP_HOST'])) {
$http = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ? 'https' : 'http';
$hostname = $_SERVER['HTTP_HOST'];
$dir = str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
$core = preg_split('@/@', str_replace($_SERVER['DOCUMENT_ROOT'], '', realpath(dirname(__FILE__))), NULL, PREG_SPLIT_NO_EMPTY);
$core = $core[0];
$tmplt = $atRoot ? ($atCore ? "%s://%s/%s/" : "%s://%s/") : ($atCore ? "%s://%s/%s/" : "%s://%s%s");
$end = $atRoot ? ($atCore ? $core : $hostname) : ($atCore ? $core : $dir);
$base_url = sprintf( $tmplt, $http, $hostname, $end );
}
else $base_url = 'http://localhost/';
if ($parse) {
$base_url = parse_url($base_url);
if (isset($base_url['path'])) if ($base_url['path'] == '/') $base_url['path'] = '';
}
return $base_url;
}
}
다음과 같이 간단하게 사용하십시오.
// url like: http://stackoverflow.com/questions/2820723/how-to-get-base-url-with-php
echo base_url(); // will produce something like: http://stackoverflow.com/questions/2820723/
echo base_url(TRUE); // will produce something like: http://stackoverflow.com/
echo base_url(TRUE, TRUE); || echo base_url(NULL, TRUE); // will produce something like: http://stackoverflow.com/questions/
// and finally
echo base_url(NULL, NULL, TRUE);
// will produce something like:
// array(3) {
// ["scheme"]=>
// string(4) "http"
// ["host"]=>
// string(12) "stackoverflow.com"
// ["path"]=>
// string(35) "/questions/2820723/"
// }
답변
$base_url="http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["REQUEST_URI"].'?').'/';
용법:
print "<script src='{$base_url}js/jquery.min.js'/>";
답변
$modifyUrl = parse_url($url);
print_r($modifyUrl)
출력 을 사용하는 것이 간단합니다 .
Array
(
[scheme] => http
[host] => aaa.bbb.com
[path] => /
)
답변
$_SERVER
슈퍼 글로벌에 원하는 정보가 있다고 생각합니다 . 다음과 같을 수 있습니다.
echo $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']
여기 에서 관련 PHP 문서를 볼 수 있습니다 .
답변
다음 코드를 시도하십시오.
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
echo $config['base_url'];