Como validar conteudo de arquivo

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!