本文整理汇总了PHP中Arrays::in_array_r方法的典型用法代码示例。如果您正苦于以下问题:PHP Arrays::in_array_r方法的具体用法?PHP Arrays::in_array_r怎么用?PHP Arrays::in_array_r使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Arrays
的用法示例。
在下文中一共展示了Arrays::in_array_r方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: upload
/**
* Método que realiza o upload de arquivos para a pasta informada.
*
* @param array $arquivo Um array contendo os dados recebidos via post contendo os arquivos
* @param string $pastaDestino O nome da pasta dentro da pasta de uploads do sistema
* @param array $tiposAceitos Um array contendo os tipos aceitos onde as chaves são as extenções.
* Caso não seja informado, aceita qualquer tipo arquivo. O array deve possuir os mimetypes e não as extenções
* @param string $nomeSugerido Caso seja informado, usa como node do arquivo
* @param bool $privado Define se o arquivo será salvo na pasta privada ou não
*
* @return bool|string Retorna o nome do arquivo caso seja enviado com sucesso ou false em caso de erro
*
* @throws Exception
*/
public function upload($arquivo, $pastaDestino, array $tiposAceitos = array(), $nomeSugerido = false, $privado = false)
{
//Verificando a variável do arquivo
if (!is_array($arquivo)) {
throw new Exception('O arquivo não é válido', 1);
}
//Verificando se o arquivo tem um nome válido
if (!strlen($arquivo['name'])) {
throw new Exception('O arquivo informado é inválido', 2);
}
//Testando o tipo do arquivo
if (count($tiposAceitos)) {
if (!Arrays::in_array_r($arquivo['type'], $tiposAceitos)) {
throw new Exception('O formato do arquivo não é permitido', 3);
}
//Testando a extenção do arquivo
$ext = substr($arquivo['name'], strrpos($arquivo['name'], '.') + 1);
if (!strlen($ext)) {
throw new Exception('O arquivo é inválido', 4);
}
if (!isset($tiposAceitos[$ext])) {
throw new Exception("A extenção do arquivo não é permitida", 9);
}
if (is_array($tiposAceitos[$ext])) {
if (!in_array($arquivo['type'], $tiposAceitos[$ext])) {
throw new Exception('O arquivo é inválido', 5);
}
} else {
if ($tiposAceitos[$ext] != $arquivo['type']) {
throw new Exception('O arquivo é inválido', 10);
}
}
}
//Testendo o tamanho do arquivo enviado
$maxSizeUpload = ini_get('upload_max_filesize');
if ((int) $arquivo['size'] > Matematica::returnBytes($maxSizeUpload)) {
throw new Exception('O tamanho do arquivo é maior do que o permitido', 6);
}
//Criando a pasta
if ((bool) $privado) {
//Definindo o destino para a pasta privada, sem acesso via URL
$pasta = $this->pastaUploadPrivado . DIRECTORY_SEPARATOR . $pastaDestino;
} else {
$pasta = $this->pastaUpload . DIRECTORY_SEPARATOR . $pastaDestino;
}
if (!file_exists($pasta)) {
if (!mkdir($pasta, 0755, true)) {
throw new Exception('Não é possível enviar o arquivo. Entre em contato com o administrador', 7);
}
}
if (substr($pasta, -1) == '/') {
$pasta = substr($pasta, -1);
}
//Definindo o nome do arquivo
$ext = substr($arquivo['name'], strrpos($arquivo['name'], '.'));
if (is_string($nomeSugerido)) {
$nome = substr($nomeSugerido, 0, strrpos($nomeSugerido, "."));
$nome .= $ext;
} else {
$nome = md5(microtime() . $arquivo['name']) . "{$ext}";
}
//Enviando o arquivo
if (!move_uploaded_file($arquivo['tmp_name'], "{$pasta}/{$nome}")) {
throw new Exception("Falha ao tentar enviar o arquivo {$pasta}", 8);
}
return $nome;
}
示例2: upload
/**
* Método que realiza o upload de arquivos para a pasta informada
* @param array $arquivo Um array contendo os dados recebidos via post contendo os arquivos
* @param string $pastaDestino O nome da pasta dentro da pasta de uploads do sistema
* @param array $tiposAceitos Um array contendo os tipos aceitos onde as chaves são as extenções.
* Caso não seja informado, aceita qualquer tipo arquivo. O array deve possuir os mimetypes e não as extenções
* @param string $nomeSugerido Caso seja informado
* @return boolean|string Retorna o nome do arquivo caso seja enviado com sucesso ou false em caso de erro
* @throws Exception
*/
public function upload($arquivo, $pastaDestino, array $tiposAceitos = array(), $nomeSugerido = false)
{
//Verificando a variável do arquivo
if (!is_array($arquivo)) {
throw new Exception("O arquivo não é válido", 1);
}
//Verificando se o arquivo tem um nome válido
if (!strlen($arquivo['name'])) {
throw new Exception("O arquivo informado é inválido", 2);
}
//Testando o tipo do arquivo
if (count($tiposAceitos)) {
if (!Arrays::in_array_r($arquivo["type"], $tiposAceitos)) {
throw new Exception("O formato do arquivo não é permitido", 3);
}
//Testando a extenção do arquivo
$ext = substr($arquivo['name'], strrpos($arquivo['name'], ".") + 1);
if (!strlen($ext)) {
throw new Exception("O arquivo é inválido", 4);
}
if (!isset($tiposAceitos[$ext])) {
throw new Exception("A extenção do arquivo não é permitida: {$ext} - " . $arquivo['name'], 9);
}
if (is_array($tiposAceitos[$ext])) {
if (!in_array($arquivo["type"], $tiposAceitos[$ext])) {
throw new Exception("O arquivo é inválido", 5);
}
} else {
if ($tiposAceitos[$ext] != $arquivo["type"]) {
throw new Exception("O arquivo é inválido", 10);
}
}
}
//Testendo o tamanho do arquivo enviado
$maxSizeUpload = ini_get("upload_max_filesize");
if ((int) $arquivo['size'] > Matematica::returnBytes($maxSizeUpload)) {
throw new Exception("O tamanho do arquivo é maior do que o permitido", 6);
}
//Criando a pasta
$pasta = "{$this->pastaUpload}/{$pastaDestino}";
if (!file_exists($pasta)) {
if (!mkdir($pasta, 0755, true)) {
throw new Exception("Não é possível enviar o arquivo. Entre em contato com o administrador", 7);
}
}
if (substr($pasta, -1) == "/") {
$pasta = substr($pasta, -1);
}
//Definindo o nome do arquivo
$ext = substr($arquivo['name'], strrpos(".", $arquivo['name']));
$nome = is_string($nomeSugerido) ? $nomeSugerido : md5(microtime() . $arquivo['name']) . ".{$ext}";
//Enviando o arquivo
if (!move_uploaded_file($arquivo["tmp_name"], "{$pasta}/{$nome}")) {
throw new Exception("Falha ao tentar enviar o arquivo {$pasta}", 8);
}
return $nome;
}