Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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';
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
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
Preciso de respostas concretas, nada de suposições.....se o erro está no substr, como concertar então..
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]
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...
1o caso: ltrim() http://php.net/ltrim
$url = ltrim( $url, '/' );
2o caso: str_replace
$url = str_replace( 'ie', 'chrome', $url );