Ir para conteúdo
Fórum Script Brasil
  • 0

Manipulando Arquivos .php


Baroni

Pergunta

Estou iniciando um novo projeto e preciso de ajuda. Preciso manipular arquivos .php da seguinte maneira.

o programa lê no arquivo mestre o comando [procure em c:\index.php]

o programa abre o arquivo;

o arquivo mestre pede ao programa que ele procure dentro do index.php uma String (por ex: "?>")

o programa lê o arquivo index.php e acha a string;

o arquivo mestre pede que seja adicionado um código qualquer antes da string localizada e depois feche o arquivo;

o programa realiza o comando fecha e salva o arquivo.

A manipulação seria +/- essa, abrir um arquivo .php, localizar Srings dentro desse arquivo, adicionar linhas, fechar e salvar esse arquivo. Acho que esses arquivos podem ser manipulados como se fossem txt, mas não tenho certeza... e mesmo que possa não sei fazer essas manipulações...

Alguém pode me ajudar???

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Pode ser usando a classe TStrings?!

Isso vai servir para qualquer "search and replace in text file", não só PHP:

procedure OpenPHPFile(PHPFileName :String; var ArqPHP :TStrings);
begin
  ArqPHP := TStrings.Create;
  ArqPHP.LoadFromFile(PHPFileName);  // Lê o arquivo
end;  

procedure SavePHPFile(PHPFileName :String; var ArqPHP :TStrings);
begin
  ArqPHP.SaveToFile(PHPFileName);   // grava devolta
  ArqPHP.Free;
  ArqPHP := Nil;
end;

procedure ParseFile(var ArqPHP :TStrings; StrToSearch, StrToInsert :string);
var
  Idx,
  StrPos :Integer;
begin
  with ArqPHP do
    for Idx := 0 to Count -1 do
    // substitui todas as ocorrências, LINHA-A-LINHA
    // função presente na unit SysUtils - Delphi7
      StringReplace(Strings[Idx], StrToSearch, StrToInsert, [rfReplaceAll, rfIgnoreCase]);
end;  

procedure ProcessPHPFile(PHPFileName :String);
var
  ArqPHP :TStrings;
begin
  OpenPHPFile(PHPFileName , ArqPHP);
  ParseFile(ArqPHP, 'CodPessoa?>', '1002');
  ParseFile(ArqPHP, 'NomPessoa?>', 'Zequinha');
  SavePHPFile(PHPFileName , ArqPHP);
end;
ou simplesmente utilizando a propriedade Text do TStrings e menos modularizado:
procedure ProcessPHPFile(PHPFileName :String);
var
  ArqPHP :TStrings;
begin
  ArqPHP := TStrings.Create;
  ArqPHP.LoadFromFile(PHPFileName);  // Lê o arquivo
  StringReplace(ArqPHP.Text, 'CodPessoa?>', '1002', [rfReplaceAll, rfIgnoreCase]);
  StringReplace(ArqPHP.Text, 'NomPessoa?>', 'Zequinha', [rfReplaceAll, rfIgnoreCase]);
  ArqPHP.SaveToFile(PHPFileName);   // grava devolta
  ArqPHP.Free;
end;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...