Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Web Soluções Web

Retirar e substituir string !

Recommended Posts

Olá pessoal !

Preciso do seguinte:

A minha variável $_SERVER["PHP_SELF"]; está com o seguinte valor abaixo:
/rmslpz/Internet_Explorer_9/A_Escola/pagina1.php

preciso retirar a primeira barra da string, resultando como abaixo:
rmslpz/Internet_Explorer_9/A_Escola/pagina1.php

depois preciso substituir a string "Internet_Explorer_9" para "Google_Chrome", ficando assim:
rmslpz/Google_Chrome/A_Escola/pagina1.php

 

 

...alguém poderia me dar um help ?
No aguardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que estou tentando fazer é o seguinte:

No site, tenho as seguintes pastas: 'Internet_Explorer_9', 'Internet_Explorer_11', 'Mozilla_Firefox', 'Google Chrome'.
Cada conteúdo da pasta editado para funcionar esteticamente para seus respectivos navegadores !

O que eu estou tentanto fazer para o geral é o seguinte:

Criar um script que por exemplo:

- se o usuário estiver utilizando o navegador 'Internet Explorer 9' e acessar algum arquivo da pasta 'Internet Explorer 11' ele acessa o correspondente arquivo porém na pasta 'Internet Explorer 9';
- outro exemplo: se o usuário estiver utilizando o navegador 'Internet Explorer 11' e tentar acessar algum arquivo da pasta 'Mozilla_Firefox' ele irá acessar o arquivo correspondente porém na pasta 'Internet Explorer 11';

- ou seja, o script impede que o usuário tenha acessar ao arquivo que não seja da pasta de seu navegador correspondente.

Com base nisso, comecei a desenvolver o script:

$useragent = $_SERVER['HTTP_USER_AGENT'];

  $FILE_PATH = $_SERVER["PHP_SELF"];
  $FILE_NAME = basename($FILE_PATH);

if(strpos($useragent,"Chrome")) {
    $FILE_PATH_CHROME_IE9 = $FILE_PATH;
    $FILE_PATH_CHROME_IE11 = $FILE_PATH;
    $FILE_PATH_CHROME_MOZILLA_FIREFOX = $FILE_PATH;
    
    if(strpos($FILE_PATH_CHROME_IE9,"Internet_Explorer_9")) {
    $FILE_PATH_CHROME_IE9 = str_replace("Internet_Explorer_9", "Google_Chrome", substr($FILE_PATH_CHROME_IE9, 1));
    header("location:http://www.colegioramoslopez.com/$FILE_PATH_CHROME_IE9");
    exit;
    }
    if(strpos($FILE_PATH_CHROME_IE11,"Internet_Explorer_11")) {
    $FILE_PATH_CHROME_IE11 = str_replace("Internet_Explorer_11", "Google_Chrome", substr($FILE_PATH_CHROME_IE11, 1));
    header("location:http://www.colegioramoslopez.com/$FILE_PATH_CHROME_IE11");
    exit;
    }
    if(strpos($FILE_PATH_CHROME_MOZILLA_FIREFOX,"Mozilla_Firefox")) {
    $FILE_PATH_CHROME_MOZILLA_FIREFOX = str_replace("Mozilla_Firefox", "Google_Chrome", substr($FILE_PATH_CHROME_MOZILLA_FIREFOX, 1));
    header("location:http://www.colegioramoslopez.com/$FILE_PATH_CHROME_MOZILLA_FIREFOX");
    exit;
    }
}

Neste código, está escrito para eu realizar os testes utilizando o navegador 'Google_Chrome',

Através dele, se eu digito qualquer página mesmo com subdiretórios escrevendo como 'Internet_Explorer_9' dá certo, porém os seguintes 'Internet_Explorer_11' e 'Mozilla_Firefox' o endereço come quando possui subdiertórios....é apenas este o problema.....

help

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há duas formas de resolver: a correta e a Gambiarra.

 

A solução por Gambiarra é corrigir o seu código, que já é uma Gambiarra pois cria N sites, cada um para um navegador. Parece que o erro está nesse substr. Considere a URL inteira no str_replace. Use echo/var_dump para ver quais são os valores de cada variáve. Ou use um sistema de logs

 

 

A solução correta é fazer um site apenas, que funcione em todos os navegadores, como já citado neste seu outro tópico. Vai poupar muitas dores de cabeça futuras, com certeza

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preciso de respostas concretas, nada de suposições.....se o erro está no substr, como concertar então..

 

Se quer alguém para simplesmente resolver o seu problema, use este fórum

 

Se quer orientações para chegar à solução, comece a fazer debug do seu programa, como orientei no [anchorlink=2144752]post #4[/anchorlink]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para tentar fazer que o caminho do diretório não seja comido, tentei adicionar como váriavel $PATH duas $_SERVER variáveis que possuem o mesmo valor de $_SERVER["PHP_SELF"]:

<?php
 
$useragent = $_SERVER['HTTP_USER_AGENT'];

$FILE_PATH_CHROME_IE9 = $_SERVER["PHP_SELF"];

if(strpos($useragent,"Chrome")) {
        
    if(strpos($FILE_PATH_CHROME_IE9,"Internet_Explorer_9")) {
    $FILE_PATH_CHROME_IE9 = ltrim($FILE_PATH_CHROME_IE9, '/' );
    $FILE_PATH_CHROME_IE9 = str_replace("Internet_Explorer_9", "Google_Chrome", $FILE_PATH_CHROME_IE9);
    header("location:http://www.colegioramoslopez.com/$FILE_PATH_CHROME_IE9");
    exit;
    }
    
    $FILE_PATH_CHROME_IE11 = $_SERVER["ORIG_PATH_INFO"];
    
    if(strpos($FILE_PATH_CHROME_IE11,"Internet_Explorer_11")) {
    $FILE_PATH_CHROME_IE11 = ltrim( $FILE_PATH_CHROME_IE11, '/' );
    $FILE_PATH_CHROME_IE11 = str_replace("Internet_Explorer_11", "Google_Chrome", $FILE_PATH_CHROME_IE11);
    header("location:http://www.colegioramoslopez.com/$FILE_PATH_CHROME_IE11");
    exit;
    }

    $FILE_PATH_CHROME_MOZILLA_FIREFOX = $_SERVER["URL"];
    
    if(strpos($FILE_PATH_CHROME_MOZILLA_FIREFOX,"Mozilla_Firefox")) {
    $FILE_PATH_CHROME_MOZILLA_FIREFOX = ltrim( $FILE_PATH_CHROME_MOZILLA_FIREFOX, '/' );
    $FILE_PATH_CHROME_MOZILLA_FIREFOX = str_replace("Internet_Explorer_11", "Google_Chrome", $FILE_PATH_CHROME_MOZILLA_FIREFOX);
    header("location:http://www.colegioramoslopez.com/$FILE_PATH_CHROME_MOZILLA_FIREFOX");
    exit;
    }
}

?>

Quando eu faço o teste acessando via 'Google Chrome' qualquer tipo pasta navegador, dá certo, mesmo os endereços que possuem subpastas.

Porém, no 'Internet_Explorer_11' e 'Mozilla_Firefox', os endereços que possuem subpastas não dão certo...o código come as subpastas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.