Há alguma forma de validar o conteudo de um arquivo, estou tentando ler um arquivo de retorno do bb, e validar se na primeira linha existe uma sequencia especifica, estou tentando criar uma rule, mas nao sei como puxar o arquivo para valida-lo.
Há alguma forma de validar o conteudo de um arquivo, estou tentando ler um arquivo de retorno do bb, e validar se na primeira linha existe uma sequencia especifica, estou tentando criar uma rule, mas nao sei como puxar o arquivo para valida-lo.
lurk, se entendi vc não deseja validar a extensão e sim o padrão dentro do arquivo, não é isso?!
Nem sei como é um arquivo de retorno do BB mas ele deve ter uma extensão específica identificando ele, não tem (.ret, .re, …)?
Tb já trabalhei com um arquivo de retorno, em meu caso o arquivo era da Caixa, a extensão dele é .ret, e o conteúdo é texto puro (um problema, pois facilitaria muito se fosse XML). O que fiz para processar este arquivo foi adicionar nas rules uma regra para aceitar apenas arquivos com a extensão .ret e após fazer o upload do arquivo eu trabalhei em cada linha mapeando as informações que necessito tipo:
public function rules()
{
return array(
array('arquivo', 'file', 'types' => 'ret'),
);
}
/*Em meu controller, processamento do arquivo de retorno*/
$model->attributes = $_POST['ArquivoRetornoForm'];
if ($model->validate()) {
$arquivo = CUploadedFile::getInstance($model, 'arquivo');
$arquivo->saveAs(Yii::getPathOfAlias('application.diretorioDoArquivo') . '/' . $arquivo->name);
$linhas = file(Yii::getPathOfAlias('application.diretorioDoArquivo') . '/' . $arquivo->name);
}
Para capturar os valores identificação do boleto, data de pagamento, … percorri a variável $linhas com o foreach e utilizei as funções substr() e preg_match().
Ainda não pensei diferente, caso tenha outra idéia não deixe de postar.
Flw!
:wq
Nao e somente pela extensao, porque existem varios tipos de layout e todos com a mesma extensao. é que eu estava tentando criar uma validacao no form_model, mas acho que terei que partir para o controller!, mas valeu a ajuda!