Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudações turma! :rolleyes:
O problema desta vez é o seguinte:
Desenvolvi um script para geração de backup's com saída para arquivos .sql. Tudo bem, ja esta pronto e todo revisado.
Agora, estou desenvolvendo a restauração de backup's através da leitura do arquivo, identificação das instruções e consequente execução. Claro, o modo mais prático (pelo menos até onde vai meu conhecimento) de identificar estas instruções é lendo o arquivo para uma string (file()) e usando ER + preg_match_all().
Ai é que entra o meu problema pois na geração a quebra de linha na estrutura (obtida com SHOW CREATE TABLE) e nos insert's.
Exemplo de arquivo gerado pelo meu script:
#
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
DROP TABLE IF EXISTS `sis_acoes`;
CREATE TABLE `sis_acoes` (
`Codigo` mediumint(5) unsigned zerofill NOT NULL AUTO_INCREMENT,
`Fonte` tinytext COLLATE utf8_unicode_ci,
`Tipo` tinytext COLLATE utf8_unicode_ci,
`Chave` tinytext COLLATE utf8_unicode_ci,
`Acao` tinytext COLLATE utf8_unicode_ci,
`Nome` tinytext COLLATE utf8_unicode_ci,
`Modulo` tinytext COLLATE utf8_unicode_ci,
`Permissao` tinytext COLLATE utf8_unicode_ci,
`Regra` tinytext COLLATE utf8_unicode_ci,
`Regra_Nivel` tinytext COLLATE utf8_unicode_ci,
`Regra_Usuario` tinytext COLLATE utf8_unicode_ci,
`Regra_ID` tinytext COLLATE utf8_unicode_ci,
`Regra_Especial` tinytext COLLATE utf8_unicode_ci,
`Reg_CadData` date DEFAULT NULL,
`Reg_CadHora` time NOT NULL DEFAULT '00:00:00',
`Reg_CadUsuario` tinytext COLLATE utf8_unicode_ci,
`Reg_AtuData` date DEFAULT NULL,
`Reg_AtuHora` time NOT NULL DEFAULT '00:00:00',
`Reg_AtuUsuario` tinytext COLLATE utf8_unicode_ci,
`Pesquisa` tinyint(2) NOT NULL DEFAULT '0',
`Filtro` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`Codigo`)
) ENGINE=InnoDB AUTO_INCREMENT=62 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO sis_acoes VALUES
(00001, "Sistema", "Chave", "bHJobGZ8ZnxmfEZ1c2lrdUpvTiRuOmg=", 0001, "Indexação", "Sistema", "cG5mWG5sbmxYc21hdURtTg==", "dnBmZnZscGZmUGlURFdtbQ==", "dmZmWG5obGZmTG9zeVRlTA==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00002, "Sistema", "Chave", "cnRYanJuZnxmfFpNVTNHUWd8RnVzaXVxSGdMJG46cFg=", 0002, "Página inicial", "Sistema", "aHJyWGZqaHBYYUNUbUNUeQ==", "cm5qdnJycmhmZXFvYlBUUg==", "dHJ0WGhsdnJmelJDRk5pRA==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00003, "Sistema", "Chave", "bHRYbmZ8ZnxLNDR1OlpNVTNHUWd8RnVzZU55JHQ6ZnY=", 0003, "Erros do sistema", "Sistema", "dmh2WHZsbm5YZ3lxV0pMYg==", "bG52bHJwam5maVdScWViZQ==", "aHJ0bmpsWFhmRmdWTFJKZw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00004, "Sistema", "Chave", "dm52ZnxLMDZxfFpNVTNHUWd8RnVzeWdhV2UkcDpqWA==", 0004, "Informações do sistema", "Sistema", "WHBYZnRmdHJYUlZieVBtUA==", "blhYcHJ2bGhYVmlDTE5IYQ==", "cnRYWGpwbmh2a0ZWRkZSSg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00005, "Sistema", "Chave", "bnZ2dmZ0ZnxHSzM2VU1FeEtWfFpNVTNHUWd8RnVzSEZzb21UYSRsOnJ2", 0005, "Documentos do sistema", "Sistema", "bG50ZmhYZmpYZVBhZ1BMYQ==", "dFhucHJuaGpYZ3VlZ1RIeg==", "bGhmbHR2dHRYV216RkptRg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00006, "Sistema", "Chave", "cGxybnZybGZ8Znw1OTUuR1FHfHN6SnFWRnlzJHA6cFg=", 0006, "Execuções do sistema", "Sistema", "bm5mbGxYbnBYcVZndWJiRg==", "Zm5ucFhYbHJmZ21KRmJ1eQ==", "dmhwaFhodHBmcW1DSnVMUA==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00007, "Sistema", "Chave", "aHJqWGZxTHF8Znw1OTUuR1FHfHN6SlJEcXplYmIkbDpsWA==", 0007, "Iniciar o sistema", "Sistema", "bGZ2bmx0blhYVmFxUGl6RA==", "aHRmdnJodGhmZWdpZ0NWZw==", "cnRobmxqcFhmekZ5ZTFlSA==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00008, "Sistema", "Chave", "aG5qWHRsNFFaZ3xmfDU5NS5HUUd8c3pKRHVUUCRyOmpY", 0008, "Finalizar o sistema", "Sistema", "ampsbnB0aGpYYUZQbUxEYQ==", "cGhqWHRYZlhmQ2FtbWJvaQ==", "bmZucHJscG5mVE5SczFETg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00009, "Sistema", "Chave", "cHBYZnZoaGowMEtTS058Znw1OTUuR1FHfHN6Sm9Uem9iRG1OcSRoOmZ2", 0009, "Encerramento da sessão", "Sistema", "WGZodFhwdHJYTG1vUk5KdQ==", "bnByWHJocmZmbW91ZUphVg==", "bnBmcnBoalhmenphZUN1eg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00010, "Sistema", "Chave", "am5qaHRubGx0NFpHUUVJR1VKOktaeFpBUTdaRTN6fGZ8NTk1LkdRR3xzekp5SlREelRESFIkaDpwdA==", 0010, "Pesquisa de atualização", "Sistema", "WGpsbG52dnZYTmtGYWkxQw==", "WFhubm5mWHRYTkpQUEpGeQ==", "dFhwaGh2bG5YdXFXdURxeg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00011, "Sistema", "Chave", "dG5mfGZ8NTk1LndaSzc2ZEt3fHN6Sm1DZUpWSG8kbDpmdg==", 0011, "PopUP Downloads", "Sistema", "ZlhyZnJqblhYUkZzc0xhVw==", "dHZsZmh0bnBYeTFibzFtSg==", "blhuanR2dGxYVHNzSFdiRA==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00012, "Sistema", "Chave", "aGpqampmdm5wZnxmfDU5NS5LUTRLM1o3VTR8c3pKaUZSVldSMVBXJGg6WHY=", 0012, "PopUP Relatórios", "Sistema", "cGZYbHBsdmhYRFBXeWkxRg==", "bGx0bHZscGxYSmVrZ0h6VA==", "bG5ybGZ0bHZYRGVQb3VIVA==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00013, "Sistema", "Chave", "aHBmbGxYdnJmfGZ8NTk1LlNLN3xzekpvVGdpV3VQeiRqOnBY", 0013, "PopUP Logs", "Sistema", "cG5ybm52bGZYYWJQbWVhUg==", "bmhYaGZYdGZYekZiTkhOMQ==", "WHZ0bGhubnJYQ2F6dWVhVg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00014, "Sistema", "Chave", "cHRmfGZ8R1VLeFo0RVNRMDZLVzpaTVUzR1FnfEZ1c3UkWDpodg==", 0101, "Listar Configurações", "Configurações", "WHJubmZobnZYRHVpdUhKaQ==", "am5sbFhobmhYRldSVEN1Rg==", "ZmZmZlhqdHR2eUZOSEhlVg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00015, "Sistema", "Chave", "cjRaMlo0c3xmfEdVS3haNEVTUTA2S1c6Wk1VM0dRZ3xGdXN1SFAkdDpydA==", 0102, "Atualizar Configuração", "Configurações", "WG5yampoalhYTG9iYlZtTA==", "ZmZycnRqaHBYSkNGYVBIVw==", "cnRYWHZydmx2SkZiZ1ZMZw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00016, "Sistema", "Chave", "dmZ8Znw1RU94Wnk6Wk1VM0dRZ3xGdXNhTGFpMSRwOnZ2", 0201, "Listar Backups", "Backup", "clhqWHJsam5YTnptemdtMQ==", "dHBuZmZYamxYYnNXSHFhaQ==", "anJ0ZnJsdGhYTExxRnliVg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00017, "Sistema", "Chave", "cGZmNFozeFo1TUtXfGZ8NUVPeFp5OlpNVTNHUWd8RnVzUmdlV3l5JG46ZnQ=", 0202, "Compactar Backup", "Backup", "ZnRycmpyZmZYdXlMSHFpZw==", "bmZqbm5manJYa0hUekRiVA==", "WG52cmZyZlhycVdtSnVIcw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00018, "Sistema", "Chave", "dDRaM3haNU1LVy1aNzVRMzdFbXxmfDVFT3haeTpaTVUzR1FnfEZ1c0gkWDpodA==", 0203, "Compactar múltiplos Backups", "Backup", "WHZybGpyamhYYURDb3FpYg==", "WGZqdHJqbHRYRGlhMW0xbQ==", "bHRYWHJucGZyTHpEV05KVA==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00019, "Sistema", "Chave", "cHJwcGZyNFozeFo1TUt4R1VWfGZ8NUVPeFp5OlpNVTNHUWd8RnVzSHkkdjp0dA==", 0204, "Descompactar Backup", "Backup", "WHBwbnJ0bGxYTExQcUppTg==", "bGhuWG5sdGZYb0RDZ29zTg==", "amhucGxsbHRyRkZKZWF1YQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00020, "Sistema", "Chave", "clh0dHZwamZuNFozeFo1TUt4R1VWLVo3NVEzN0VtfGZ8NUVPeFp5OlpNVTNHUWd8RnVzSG9WYnVGZ2d5JGg6dnI=", 0205, "Descompactar múltiplos Backups", "Backup", "dGpsWHBsWG5YekRrekxOUg==", "bnRyanRqcGhYVGVQb21OeQ==", "aHZwbFh0bGpyVnVpVFRIbQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00021, "Sistema", "Chave", "bGZYdG40UUU3eGN1fGZ8NUVPeFp5OlpNVTNHUWd8RnVzTnNITFJvJG46anY=", 0206, "Excluir Backup", "Backup", "cGhsbmZYWGpYbUNURkhMTA==", "bGZobnJybGZYb0R1bXMxaw==", "dnJ0ZmZ0WGpwUmVvTkp5Sg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00022, "Sistema", "Chave", "dmZuanRuNFFFN3hjdS1aNzVRMzdFbXxmfDVFT3haeTpaTVUzR1FnfEZ1c29XaVJSJHA6bHQ=", 0207, "Excluir múltiplos Backups", "Backup", "dG5YamxucHZYelRrVFRXdQ==", "cmZ2bGhuamxYQ28xeXpXQw==", "cHBucmhoanZwQ0xndXliYQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00023, "Sistema", "Chave", "bmh0WHRmfDRaM0V4VWN1fDVFT3haeTpaTVUzR1FnfEZ1c1RxMVZUTHVMYSRoOmh2", 0208, "Execução de Backups", "Backup", "dmpmanJoWHBYZ0pXcUxxVg==", "dnZyaGZubHZYZUNKemF5cQ==", "cGZocGhwbGpyQ2FhemdKaw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00024, "Sistema", "Chave", "dmxYcjRaNFo1VTRKfDRaM0V4VWN1fDVFT3haeTpaTVUzR1FnfEZ1c295bWUkcjpudA==", 0209, "Preparar execução de Backups", "Backup", "cnBodGZYaGZYbXVEcXExeg==", "dm5sWGhmdnJYYUhUTkp6Rg==", "dHBwcm50WGhySmtiYWl1eQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00025, "Sistema", "Chave", "dm50bFhqZnw0WjRFWjNHVUh8NUVPeFp5OlpNVTNHUWd8RnVzbSRYOmZ0", 0210, "Restauração de Backups", "Backup", "bG5oaG5obFhmVENSZzFtRg==", "cnJwZnZqcFh2aW9pRkp1Zw==", "dmxocGpmWGpuRHF1SG1Qeg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00026, "Sistema", "Chave", "bHBqbmp2NFo0WjVVNEp8NFo0RVozR1VIfDVFT3haeTpaTVUzR1FnfEZ1c0pnVGdKUnEkbDpsdA==", 0211, "Preparar restauração de Backups", "Backup", "bGZ2bHJsbGpmRGdrb0ZQbQ==", "dmxobHJYbmZ2SG9nc0x6TA==", "ZnRYcGhYam5ueVJEdTFiTA==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00027, "Sistema", "Chave", "cnZwcGY0WjNFeFVjdTo1RU94Wnl8Znw1OTUuR1FHfHN6SlJWV0Mkcjpodg==", 0212, "Executar Backup", "Backup", "dnRqZnRqbGhYREpzekhWVg==", "dmZ2WGpucHRYZ3NDc3VpTg==", "WG5YcmpqcmxyV2JiZ05WQw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00028, "Sistema", "Chave", "amp2bmxuNFo0RVozR1VIOjVFT3haeXxmfDU5NS5HUUd8c3pKeSRYOmZ0", 0213, "Restaurar Backup", "Backup", "dGxwWFhsampmYXFzb20xVA==", "cnBYZnBYcGx2VG9ETkhrQw==", "cHB2WFh0dnZuSEZnVm1ERg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00029, "Sistema", "Chave", "bnBmWDVFT3haeTp3Wks3NmRLVnxmfDU5NS5HUUd8c3pKcWFlYSRyOmh2", 0214, "Baixar arquivo de Backup", "Backup", "WHJodHZmbGZYSmdQZU5neg==", "aHRuamxuaGhYYmdnTkNIYg==", "WHRYZnJscHZwTGJ1aVJ6Qw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00030, "Sistema", "Chave", "dHR2aHR0dGxmfGZ8R1NLTjpaTVUzR1FnfEZ1c0xpYjFhRCRuOmZ2", 0301, "Listar Logs", "Logs", "bmZyWGpydnBYbUQxbUZhcQ==", "cHBqWG5qbGxYZ05hUG91Vw==", "dm52WHBydHRYa0xEenlSUA==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00031, "Sistema", "Chave", "dHZqdG50NFozeFo1TUtXfGZ8R1NLTjpaTVUzR1FnfEZ1c3NhdUN5YW8kbDpqdg==", 0302, "Compactar Log", "Logs", "Zmx2dm5ucHJYcTF1V2VnbQ==", "anZ0dnJyanRYdVBnTFBxYQ==", "dGp2aGh2WG5yaWVKZ2VpRg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00032, "Sistema", "Chave", "WGZwanRmdGY0WjN4WjVNS1ctWjc1UTM3RW18ZnxHU0tOOlpNVTNHUWd8RnVzRHNSJHQ6bHQ=", 0303, "Compactar múltiplos Logs", "Logs", "bGp0dHB0bG5YTkRpREwxSg==", "WGxyZmpqWG5Yb0RKZW9SeQ==", "aGpsbHRycGhyMUpWUHFneg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00033, "Sistema", "Chave", "WHRodGxqNFozeFo1TUt4R1VWfGZ8R1NLTjpaTVUzR1FnfEZ1c2VIeTEkcjpYdA==", 0304, "Descompactar Log", "Logs", "ZmhqcHZYbnRYVlBpeW9tdQ==", "cHZmaGpmcmhYTkRiVHF5cw==", "bnBqcGhqcmZyYWdzUk5GbQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00034, "Sistema", "Chave", "dnBuNFozeFo1TUt4R1VWLVo3NVEzN0VtfGZ8R1NLTjpaTVUzR1FnfEZ1c1dSbXFza0okbDpmcg==", 0305, "Descompactar múltiplos Logs", "Logs", "bm5YdmxocnBYZ05remViUA==", "dG52Zm5udHZYemJQMXNSYQ==", "bnRYcGhwZnZyMUhDZXFzVw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00035, "Sistema", "Chave", "cnZ2NFFFN3hjdXxmfEdTS046Wk1VM0dRZ3xGdXNtYmlrTmIxJGw6bnY=", 0306, "Excluir Log", "Logs", "dGpmblh2cG5mVnplc1JWaQ==", "bHJydGxsaGx2bWltUmJhMQ==", "cGxwWFh0aHZudVJUSkxMeg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00036, "Sistema", "Chave", "aGxwcmxudmw0UUU3eGN1LVo3NVEzN0VtfGZ8R1NLTjpaTVUzR1FnfEZ1c21OTkhWV1JUViRoOnB0", 0307, "Excluir múltiplos Logs", "Logs", "bHJmdmp0bnJmazFOSHpOUg==", "bnRyalhuZmZYRlZSQ2ltQw==", "clhoamhqZmhua21ISGJEcw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00037, "Sistema", "Chave", "cHJudnJmfDRVRHxHU0tOOlpNVTNHUWd8RnVzazFzJHQ6dnY=", 0308, "Visualização de Logs", "Logs", "dHBudnZyZm5YVHVtYm9tRg==", "WHBoanB0bnBYaW9iZVRIbQ==", "WG52am5oWGp2MTF5VkZDaw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00038, "Sistema", "Chave", "Zmo0UU1RNDVNcXxmfDU5NS5TSzd8c3pKcTFGVyRyOnZ2", 0309, "Imprimir registro de Log", "Logs", "bGZuWGZmcnZYUm1QVkNWZw==", "anZyanZYZmhYa1dIdU5xZw==", "WGpYam50cHByeVJhVkh6Sg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00039, "Sistema", "Chave", "dnZmU0tOOndaSzc2ZEtWfGZ8NTk1LkdRR3xzekpWRjFvJHI6bnY=", 0310, "Baixar arquivo de Log", "Logs", "bmpocnB0dmpYVm8xRmVxeQ==", "bFhYZnJoWHJYelZ6SERKMQ==", "anZ2WGx0amxwREhSYVdvcw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00040, "Sistema", "Chave", "WHRydHBmfGZ8R1VLR0dRTTRVSjpaTVUzR1FnfEZ1c2JpaUhKZ1ckbDpudg==", 0401, "Listar Permissões", "Permissões", "dlhYcnJwaG5YYXpDVkRhSg==", "bGpucm5wcmpYTkNveWtxRA==", "dGhwdnBodGpYZzFxaW9UZw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00041, "Sistema", "Chave", "dmhYclh0bjRRRTd4Y3V8ZnxHVUtHR1FNNFVKOlpNVTNHUWd8RnVzdURSRiRyOnZ0", 0402, "Excluir Permissão", "Permissões", "cGZYcmhwWFhYSlZQYkhrSA==", "bnJsdG5sbm5YaUptMXFiRg==", "dGZwZnJuWGpwTnpicXFnSg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00042, "Sistema", "Chave", "cGw0UUU3eGN1LVo3NVEzN0VtfGZ8R1VLR0dRTTRVSjpaTVUzR1FnfEZ1c2EkWDpYcg==", 0403, "Excluir múltiplos Permissões", "Permissões", "dGZuWGx2cG5mdXkxQ0NMRA==", "cmxoanJycmZYYnlrQ2Jreg==", "WHJwcHZyaHZuTGJtb1ZIYQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00043, "Sistema", "Chave", "bGpsaFh0Zm5mfEsyS0x8R1VLR0dRTTRVSjpaTVUzR1FnfEZ1c2trZyR0Omh2", 0404, "Cadastro de Permissão", "Permissões", "dlhYdHBoclhYREhrazFIRg==", "anRYZnJqcmhYYW1QYWlKRA==", "bnRqbGpsaHBybUpvUnpDaw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00044, "Sistema", "Chave", "cmZuNFp3UTdaRHxLMktMfEdVS0dHUU00VUo6Wk1VM0dRZ3xGdXNKUnVIeTFnJGw6cHQ=", 0405, "Cadastrar registro de Permissão", "Permissões", "dnR2anJ0bG5YMUhDV1dXRg==", "anJYWGxuampYbVRKc2ltSg==", "anB2cFhsalhyRnUxTDFQbQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00045, "Sistema", "Chave", "bGZ8NFozUXd1fEdVS0dHUU00VUo6Wk1VM0dRZ3xGdXNnSCR2Olh0", 0406, "Edição de Permissão", "Permissões", "aG5qdHJmamxYTldGaUxDYQ==", "dmh0dHBodnJYV2lhTEhrUg==", "ZnZydnJmWG5wbXVna0pUaw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00046, "Sistema", "Chave", "dnY0WndRN1pEfDRaM1F3dXxHVUtHR1FNNFVKOlpNVTNHUWd8RnVzTFZtQyRyOmx0", 0407, "Editar registro de Permissão", "Permissões", "ZmpwWGZqZmZYMWd6TnNMQw==", "bmxwZm50ZnJYVDExRkhIeQ==", "ZnJ0WHRmamhwQ0RpTHpEZQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00047, "Sistema", "Chave", "ZnRqaHZqZmZmfDRaQVE3WkUzenxHVUtHR1FNNFVKOlpNVTNHUWd8RnVzMXNEV3prUCRsOnJ0", 0408, "Atualização de Permissões", "Permissões", "bGxoWGhoWGZYeVdvb2tUZQ==", "ZnZqbmpmcnZYTlJvZzF6Sg==", "aFhobmpmbnZwa3VtTFZxcQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00048, "Sistema", "Chave", "ajRaM0V4VWN1fDRaQVE3WkUzenxHVUtHR1FNNFVKOlpNVTNHUWd8RnVzTFZKZVZ5UmIkajpYcg==", 0409, "Definir Atualização de Permissões", "Permissões", "cHZmbGxuanJYSFdiVERMbQ==", "cnRudnZyanBYRFJ6UnFiMQ==", "aHZ0bGhycmZwYUxQV1RWVA==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00049, "Sistema", "Chave", "ZmxmakdVS0dHUU00VUp8Znw1OTUuR1FHfHN6SmkxJHY6cnY=", 0410, "Executar Atualização de Permissões", "Permissões", "bnRwdHRsdGhYSld1c3FvSA==", "WHZYdm5odm5Yb2lvUExEbw==", "amp0cGZqcnRweW9pZ05WcQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00050, "Sistema", "Chave", "cGpoamZ8SzQ0dXxHVUtHR1FNNFVKOlpNVTNHUWd8RnVzc1ZhTFRnJG46aHY=", 0411, "Visualizar Erro de Permissões", "Permissões", "dlhobGhqdGZYaWVIbVBnSA==", "ZnBmcmxqZnRmSlJ5RlJDaQ==", "anRqaHJwclhmTEpieVZXQw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00051, "Sistema", "Chave", "ZnJodGZ8ZnxHS1E0WkVHZTpaTVUzR1FnfEZ1c1ZhV215MSRuOnJ2", 0501, "Listar Usuários", "Usuários", "aGx0bG5qdGhYTFJ6Rml5Ug==", "amZsZm5scnJYYVdURFZDRA==", "cnRyWHJYbGZYMVJ6eUhIZQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00052, "Sistema", "Chave", "bnZqbnJyaFg0UUU3eGN1fGZ8R0tRNFpFR2U6Wk1VM0dRZ3xGdXNnaVYkdDpmdA==", 0502, "Excluir Usuário", "Usuários", "dGxoWG5YdHRmYkhhVmtKMQ==", "bmx2bmZyanJ0ZXNxb29zQw==", "aGx2cnJYZmZyekRhZUphZw==", "", "VnFF", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00053, "Sistema", "Chave", "cnB2aDRaMlEzenxmfEdLUTRaRUdlOlpNVTNHUWd8RnVzc0hzRkNicyRsOmh2", 0503, "Ativar Usuário", "Usuários", "cHZmbGhqdnRmVkZ6ZUhtSA==", "ZnJ2WHJocHR0b2FhQ0plVw==", "aGpsdnJ2cGpydVJMeUpxbQ==", "", "VnFF", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00054, "Sistema", "Chave", "bmw0WjJRM1pHVVZ8ZnxHS1E0WkVHZTpaTVUzR1FnfEZ1c0pIaUNWVk4kbDp2dA==", 0504, "Desativar Usuário", "Usuários", "aHR2WHZmcnBmUHVGa0NMaw==", "dGZsdnB0cHZ0TEZxTldOSg==", "WHJsdGZYZmxyYVRtenpWeg==", "", "VnFF", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00055, "Sistema", "Chave", "dFhoNFFFN3hjdS1aNzVRMzdFbXxmfEdLUTRaRUdlOlpNVTNHUWd8RnVzcXNXJHQ6aHQ=", 0505, "Excluir múltiplos Usuários", "Usuários", "dmhqdGhYaHJmVGVMTFIxRg==", "cmpYdFhwaGZ2c3lIV0hpeQ==", "WHB2WGhuZlhuYkxOTlAxbw==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00056, "Sistema", "Chave", "ZnI0WjJRM3otWjc1UTM3RW18ZnxHS1E0WkVHZTpaTVUzR1FnfEZ1czFhSCR0Omp0", 0506, "Ativar múltiplos Usuários", "Usuários", "aGp0dmZsbGxYRlZWaVdKVg==", "cnBqcnBsbmpYeVRlc05nbw==", "bnBmamZ0cGhwVnVtZUpvVg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00057, "Sistema", "Chave", "bG5qamhsam40WjJRM1pHVVYtWjc1UTM3RW18ZnxHS1E0WkVHZTpaTVUzR1FnfEZ1c1ZDJHY6WHI=", 0507, "Desativar múltiplos Usuários", "Usuários", "bGxucHB2anJYSlRnSkxpSA==", "dnJobmxudGxYdVJvZ1BiZw==", "dnZqdGpubm5wRHpXdUh5bQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00058, "Sistema", "Chave", "bGZ8SzJLTHxHS1E0WkVHZTpaTVUzR1FnfEZ1c0NlYSR0Omx2", 0508, "Cadastro de Usuário", "Usuários", "ZnBqdmhocnRYeUxzc0RxbQ==", "blhYdm50ZmpYSFRKTGVlaw==", "aGpmdHZobHRyTGlEc2JKdQ==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00059, "Sistema", "Chave", "Zmx0WHJsNFp3UTdaRHxLMktMfEdLUTRaRUdlOlpNVTNHUWd8RnVzYkNQJHQ6dHQ=", 0509, "Cadastrar registro de Usuário", "Usuários", "amhYanZmanRYSFBhdWthMQ==", "aHJmdHRyZmZYMW9SSkpvTg==", "WGZmbmZmcGhydVdUdWV6eg==", "", "", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00060, "Sistema", "Chave", "aHJYZnR2Znw0WjNRd3V8R0tRNFpFR2U6Wk1VM0dRZ3xGdXNOZ2FlUiRwOmh2", 0510, "Edição de Usuário", "Usuários", "bnBsdGxqdnZmekRITlRpUg==", "WHBscGpsbGhweVZDa3p1cw==", "dG5ucGxYbnJmSGVSV2lOSA==", "", "VnFF", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0),
(00061, "Sistema", "Chave", "aHRmWGh0NFp3UTdaRHw0WjNRd3V8R0tRNFpFR2U6Wk1VM0dRZ3xGdXNzVnFWcUNnaUokaDpwdA==", 0511, "Editar registro de Usuário", "Usuários", "dGpoZnBobmZmeWFGb1BlcQ==", "WFhqdHRoWGpwUm1pSmJidQ==", "bnJsbmZyamZma0pOelBpbQ==", "", "VnFF", "", "2012-05-31", "10:25:27", "Wk1VM0dRZw==", "", "00:00:00", "", 0, 0);
Funções usadas na leitura:
<?php
/ LEITURA DO ARQUIVO /
Function Arquivo_Ler($Arquivo = '', $Array = True, $Linhas_Vazias = True) { Global $_SIS;
$Arquivo_URL = $_SIS['Base'].$Arquivo;
If (empty($Arquivo)) Return Array('RT' => 'Erro', 'Info' => 'Parâmetro ausente/incorreto: Arquivo (URL)');
If (!is_file($Arquivo_URL)) Return Array('RT' => 'Erro', 'Info' => 'Arquivo [ '.$Arquivo.' ] não encontrado');
If (!is_readable($Arquivo_URL)) Return Array('RT' => 'Erro', 'Info' => 'Arquivo [ '.$Arquivo.' ] sem permissão de leitura');
$RT = $Array ? ( $Linhas_Vazias ? file($Arquivo_URL) : file($Arquivo_URL, FILE_IGNORE_NEW_LINES) ) : file_get_contents($Arquivo_URL);
Return $RT;
}
/ IDENTIFICACAO DAS INSTRUCOES /
Function Backup_Ler_Arquivo($Arquivo) {
$Conteudo = Arquivo_Ler($Arquivo, False, False);
//$Conteudo = str_replace('`', '', $Conteudo);
$Conteudo = addslashes($Conteudo);
// Conteudo
$TMP = preg_match_all("/DROP TABLE.*;/i", $Conteudo, $aDrop);
$TMP = preg_match_all("/CREATE TABLE.*;/i", $Conteudo, $aCreate);
$TMP = preg_match_all("/INSERT INTO.*;/i", $Conteudo, $aInsert);
$RT = Array('Drop' => $aDrop[0], 'Create' => $aCreate[0], 'Insert' => $aInsert[0]);
Return $RT;
}
?>
Beleza! O problema, acredito, é que:
Como as instruções CREATE TABLE e INSERT INTO tem quebras de linha, ao contrário da DROP TABLE que é sempre gerada em uma única linha, não as consigo capturar.
print_r() da saída da minha função Backup_Ler_Arquivo():
<?php
Array
(
[Drop] => Array
(
[0] => DROP TABLE IF EXISTS sis_acoes;
)
[Create] => Array
(
)
[insert] => Array
(
)
)
?>
Detalhe:
Se removo o ; no fim da ER ele retona apenas a 1ª linha:
// ASSIM: (sem ;)
$TMP = preg_match_all("/DROP TABLE.*;/i", $Conteudo, $aDrop);
$TMP = preg_match_all("/CREATE TABLE.*/i", $Conteudo, $aCreate);
$TMP = preg_match_all("/INSERT INTO.*/i", $Conteudo, $aInsert);
// Imprime:
Array
(
[Drop] => Array
(
[0] => DROP TABLE IF EXISTS `sis_acoes`;
)
[Create] => Array
(
[0] => CREATE TABLE `sis_acoes` (
)
[insert] => Array
(
[0] => INSERT INTO `sis_acoes` VALUES
)
)
?>
Por isso acredito que o problema sejam as quebras de linhas ou, de repente, os parenteses contidos nas intruções... :D Alguma luz parceiros?
Carregando comentários...