2017-01-30 2 views
-1

그래서 저는 5 년 넘게 관련 주제를 프로그래밍하기 위해 StackOverflow를 사용해 왔으며 한번도 9/10으로 등록하지 않았다고 생각합니다. 내가 찾고있는 것을 찾았습니다. 이번에는 인터넷을 트롤링하고 스택 오버플로의 제안을 찾았습니다. 대답을 찾을 수 없으므로 여기에 있습니다.Universal Navigation Bar PHP (Multiple Directories)

사용자가 어떤 페이지에 있든 관계없이 보편적으로 액세스 할 수 있도록 탐색 모음을 @ 포함 시키려고합니다. 문제는 다중 디렉토리/로그인입니다. /register /profile

물론 CSS 파일, 탐색 및 JS 파일과 같은 것들에 대한 목록은 계속됩니다. 나는 끊임없이 파일의 '../'또는 '../../'가되도록 href를 정의하고 싶지 않습니다. 이것은 곧 PHP 파일의 방대한 디렉토리가 될 것입니다.

내가 갖고있는 문제는 @include 파일을 통해 사용자가 어떤 디렉토리에 있는지 감지하고, 예를 들어 집으로 돌아가고 싶다면 올바른 디렉토리 크기 변경을 확인하는 것입니다.

나는 여기에 의미가 있기를 바랍니다.

나는 $ _SERVER의 사용을 요구할 수 있다고 믿지만 실제로 작업하려고 시도한 코드를 제공하더라도 진정으로 붙어 있습니다. 나는 손을 기대하지 않고, 더 많은 설명을합니다.

감사

이 내 첫 번째 시도, 그것은 어느 정도 작동하지만, 그것이 내가 처음에 코드를 테스트 페이지에 의존합니다. 에코는 단순히 백그라운드에서 나 자신이 어떤 일을하고 있는지를 보는 것입니다. 이것은 Laravel 프레임 워크를 사용하여 완벽하게 만들기는 매우 쉽지만 어떤 이유로 인해 정상적으로 수행하고 있으며 어려움을 겪었습니다.

$host = $_SERVER['HTTP_HOST']; 
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); 
$extra = 'index.php'; 
$folder = $uri; 
$folder = "/Folder1/Folder2/Folder3/Folder4/Folder5"; 
echo substr_count($folder, "/"); 
echo '<br>' . $folder . '<br>'; 

$EndLoop = substr_count($folder, "/"); 

$String = ''; 

for($Loop = 1; $Loop < $EndLoop; $Loop ++) 
{ 
echo $Loop; 

$String = '../' . $String; 
echo '<br>'; 
echo $String; 
} 

2 편집합니다

<a href="signup">Sign Up</a> 

이/directory_currently_in/가입/

호스트를 라우팅 있었 사용할 때 난 그냥 일반적으로 작동하는이 작업 한

은 .. 내가 실현

내가 한 것은 이것입니다.

<?php $host = $_SERVER['HTTP_HOST']; 

//further down 

echo '<a href="http://' . $host . '/signup">Sign Up</a>'; 

가입 디렉토리가 루트 디렉토리에 있고 개인이 루트보다 3 개의 디렉토리가 더 많을 수 있으므로 가입 디렉토리에 2 ~ 3 개의 폴더를 바로 백업하는 방법을 찾아야했습니다.

http : //를 사용하고 호스트에 연결하면이 작업이 완료되었습니다. 개선에 대한 제안 사항이 있습니까? 의 라인을 따라

+1

모든 URL을 상대적이 아닌 절대적으로 설정하십시오. – Barmar

+1

PHP에는'@ include'와 같은 것이 없습니다. 단지'include'입니다. – Barmar

+0

작업 코드 또는 시도한 것을 게시하십시오. – scoopzilla

답변

0

시도 뭔가 :

<?php 
$path = $_SERVER['DOCUMENT_ROOT']; 
$path .= "/common/header.php"; 
include_once($path); 
?> 

그런 식으로 당신은 항상베이스를 참조하고 거기에서 폴더 구조를 구축하고있다.

+0

답장을 보내 주셔서 감사합니다, Yoda. 이 코드가 어떻게 작동하는지 알 수 있습니다. 여기에는 각 폴더에 대한 $ 경로가 포함되어 있으므로 입력 한 디렉토리가 얼마나 많은지 필드를 채우지 만 정확히 어떻게하면 디렉토리로 올라갈 수 있습니까? 일반적으로 '../'를 사용하여 디렉토리로 이동합니다. 내 말은, 분명히 모든 페이지가 실제로 많은 것을 포함해야한다는 것입니다. ../ 그것은 필요합니까? –

+0

시도해보십시오. 참고 : /- 현재 드라이브의 루트; ./ - 현재 디렉토리; ../ - 현재 디렉토리의 부모. – Yoda