goncin@wordpress.com:~$ _

Linux, programação e toda sorte de nerdices

Aproveitando “layouts” implementados em ASP em aplicações PHP

Hoje, quase sem querer, descobri uma solução inusitada que me poupou muito tempo e esforço. Senta que lá vem história…

O caso

Estava eu trabalhando num hotsite para um congresso internacional. Uma outra pessoa fez todo o layout e as páginas informativas, tendo ficado por minha conta desenvolver o processo de inscrição dos participantes.

O problema

O layout e as páginas informativas foram feitas em ASP (clássico), e eu vou desenvolver o procedimento de inscrição em PHP. As páginas da inscrição devem seguir o look and feel das demais páginas, aproveitando cabeçalho, rodapé e menus.

A solução

No código-fonte ASP, havia três includes:

<!--#include file="cabecalho.asp"-->
(...)
<!--#include file="menu.asp"-->
(...)
<!--#include file="rodape.asp"-->

Para não ter de refazer em PHP esses três arquivos, que, aliás, estavam alocados em outro servidor, achei por bem pegar o conteúdo deles, já devidamente processados, e injetá-los no layout para ser usado com PHP. Assim, esses três includes transformaram-se em:

<?php echo file_get_contents('http://servidor/caminho/cabecalho.asp'); ?>
(...)
<?php echo file_get_contents('http://servidor/caminho/menu.asp'); ?>
(...)
<?php echo file_get_contents('http://servidor/caminho/rodape.asp'); ?>

Funcionou, foi uma boa sacada, mas isso resolvia apenas parte do problema. Como os arquivos incluídos estavam em outro servidor em relação ao meu script PHP, os hiperlinks e os caminhos para as imagens ficaram quebrados. Foi necessário incluir o caminho para o servidor nas tags a e image. Nada que um str_replace não dê jeito.

<?php
  $include = file_get_contents('http://servidor/caminho/cabecalho.asp');
  $include = str_replace(array('src="', 'href="'),
    array('src="http://servidor/caminho/', 'href="http://servidor/caminho/') , $include);
  echo $include;
?>
(...)
<?php
  $include = file_get_contents('http://servidor/caminho/menu.asp');
  $include = str_replace(array('src="', 'href="'),
    array('src="http://servidor/caminho/', 'href="http://servidor/caminho/') , $include);
  echo $include;
?>
(...)
<?php
  $include = file_get_contents('http://servidor/caminho/rodape.asp');
  $include = str_replace(array('src="', 'href="'),
    array('src="http://servidor/caminho/', 'href="http://servidor/caminho/') , $include);
  echo $include;
?>

E voilà! Tudo funcionando, sem precisar reimplementar do zero o layout em PHP. 🙂 Agora posso me concentrar apenas em gerar o conteúdo.

Anúncios

2 Respostas para “Aproveitando “layouts” implementados em ASP em aplicações PHP

  1. Pingback: Tweets that mention Aproveitando “layouts” implementados em ASP em aplicações PHP « goncin@wordpress.com:~$ _ -- Topsy.com

  2. Mônica 03/08/2012 às 12\1245

    Que legal!! Cheguei aqui procurando como dar include em uma página ASP num código PHP. Vou testar a solução ainda, mas desde já agradeço!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: