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

passar array(php) como parametro para um script perl


Thiago Monteiro

Pergunta

Saudação a todos.

Estou tentando passar um array para um script perl.

pagina php

<?

$array = array(1, 2, 3, 4, 5);

passthru("some_script.pl $array");

?>

------------------------------------------------------------

script perl

print "@ARGV";

------------------------------------------------------------------------

O script deveria exibir os numeros do array que foi passado como argumento.

no lugar da resposta esperada que seria a sequencia 12345

esta sendo exibido a palavra "Array"

--------------------------------------------------------------------------------------------------------------

Realizei outro teste, criei um vetor e passei cada uma das posiçoes do vetor como argumentos separados

<?php

$x[]=1;

$x[]=2;

$x[]=3;

$x[]=4;

passthru("some_script.pl ".$x[1]." ".$x[2]." ".$x[3]." ".$x[4]."");

?>

nesse caso o script funcionou perfeitamente consegui acessar cada um dos valores.

percebi entaum que o array que estava sendo enviado para o script estava sendo armazenado com um indice do array @ARGV.

meu vetor gerado na pagina php esta sendo armazenado na posiçao zero da $ARGV[0]

tentei acessar os valores da seguinte forma

print @ARGV[0]["posição"];

mas não funcionou.

se alguém puder ajudar, obrigado.

Editado por Thiago Monteiro
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Fiz um exemplo para você visualizar, adapte-o da forma que precisar:

teste.pl

#!/usr/bin/perl
print "Imprimindo...\n\n";
print "@ARGV", "\n";
print @ARGV[0], "\n";
print @ARGV[1];
teste.php
<?php

    // Habilita mensagens de erros
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    
    // Declaração de variáveis
    $nomes = Array('Carlos', 'Renato', 'João');
    
    // Junta todos os valores do array $nomes em uma string (cada valor separado por um espaço)
    $parametros = join(' ', $nomes);
    
    // Inicia captura do retorno do script perl (buffer)
    ob_start();
    
    // Executa script perl passando os nomes como parâmetros
    passthru("perl teste.pl $parametros");
    
    // Recebe o retorno do script
    $retorno = ob_get_clean();
    echo nl2br($retorno);
    
?>

Editado por Stoma
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
      652k
×
×
  • Criar Novo...