2012-06-22 4 views
1

URL에 해시를 동적으로 추가합니다. 해당 strpos를 사용하여 특정 바닥 글을 표시하려고 할 때 전체 페이지를 번역 할 수 있지만 필요합니다. 클라이언트를 위해 이것을하십시오, 왜 작동하지 않는가 나는 질문다는 것을 가정 하는가? 여기 동적 해시 URL을 기반으로 strpos를 사용하는 PHP 변수

<?php 
    $page = $_SERVER['REQUEST_URI']; 
    $isSpanish = strpos($page, '/sp/'); 
    $isSpanishDynamic = strpos('#/sp/', $page); 

내 바닥 글입니다 :

는 URL 여기

http://www.example.com/#/sp/ 내 헤더처럼 보이는

<?php if($isSpanishDynamic !== FALSE || $isSpanish !== FALSE) { ?> 
        <li><a href="/">PÁGINA DE INICIO</a></li> 
        <li><a href="/sp/our-story">HISTORIA</a></li> 
        <li><a href="/sp/menu">MENÚ</a></li> 
        <li><a href="/sp/contact">CONTACTO US</a></li> 
        <li><a href="/sp/order-online">ORDENE POR INTERNET</a></li> 
    <?php } else { ?> 
        <li><a href="/">Home</a></li> 
        <li><a href="/en/our-story">Our Story</a></li> 
        <li><a href="/en/our-menu">Our Menu</a></li> 
        <li><a href="/en/contact">Contact Us</a></li> 
        <li><a href="/en/order">Order Online</a></li> 
    <?php } ?> 

답변

2

http://example.com/#/sp/ 같은 URL에서, 해시는 #/sp/이 전송되지 않습니다 PHP는 서버와 상호 작용하지 않으면 PHP로 아무 것도 할 수 없습니다.

Wikipedia 참조 :

부분 식별자 함수 다르게 URI의 나머지보다 : 즉, 해당 처리는 서버에서없는 참여 전용 클라이언트 측이다. 에이전트 (예 : 웹 브라우저)가 웹 서버에서 자원을 요청하면 에이전트는 URI를 서버로 보내지 만 조각은 보내지 않습니다. 대신 에이전트는 서버가 자원을 보내주기를 기다린 다음 에이전트가 프래그먼트 값에 따라 자원을 처리합니다. 가장 일반적인 경우 에이전트는 웹 페이지를 조각 값과 동일한 특성 문자열이있는 앵커 요소로 스크롤합니다. 다른 클라이언트 동작이 가능합니다.

+0

나는 그게이었다 생각을하지만 내 동적 클래스 일 것 같았다 iamwhitebox

+0

JavaScript를 사용하고 있습니까? http://webmasters.stackexchange.com/questions/403/how-should-i-structure-my-urls-for-both-seo-and-localization에서 토론에 관심이있을 수도 있습니다. – artlung

1

해시는 서버에 보내지 않습니다. 다른 방법으로는 쿼리 문자열을 구현하는 것이 가장 쉬운 방법 일 것입니다. /#/sp/ 대신 /?lang=sp (전체 url : http://example.com/?lang=sp)의 검색어 매개 변수를 추가 할 수 있습니다.

그런 다음 당신의 PHP 스크립트에서, 다음과 같은 코드를 사용하여 확인할 수 있습니다 :

if (isset($_GET['lang']) && $_GET['lang'] == 'sp')