Usar para qualquer tipo de mascara que deseje exemplos abaixo com data, cep, cnpj e cpf
Use with any kind of mask you wish like zip code and dates.
<?php
function mask($val, $mask)
{
$maskared = '';
$k = 0;
for($i = 0; $i<=strlen($mask)-1; $i++)
{
if($mask[$i] == '#')
{
if(isset($val[$k]))
$maskared .= $val[$k++];
}
else
{
if(isset($mask[$i]))
$maskared .= $mask[$i];
}
}
return $maskared;
}
?>
Forma de Adicionar a máscara
<?php
$cnpj = "11222333000199";
$cpf = "00100200300";
$cep = "08665110";
$data = "10102010";
echo mask($cnpj,'##.###.###/####-##');
echo mask($cpf,'###.###.###-##');
echo mask($cep,'#####-###');
echo mask($data,'##/##/####');
?>
Retirado de http://blog.clares.com.br/php-mascara-cnpj-cpf-data-e-qualquer-outra-coisa/
terça-feira, 13 de maio de 2014
sábado, 1 de fevereiro de 2014
WordPress WP-Pool - Editor pode ver pesquisa
Thank's in advance to http://familypress.net/2009/02/27/wp-polls-for-non-admins/
Em wp-pool.php dentro da função 'add_submenu_page' adicone o seguinte:
Em wp-pool.php dentro da função 'add_submenu_page' adicone o seguinte:
// começo
global $current_user;
if (!current_user_can('administrator')) {
add_submenu_page('wp-polls/polls-manager.php', __('Manage Polls', 'wp-polls'), __('Manage Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-manager.php');
add_submenu_page('wp-polls/polls-manager.php', __('Add Poll', 'wp-polls'), __('Add Poll', 'wp-polls'), 'manage_polls', 'wp-polls/polls-add.php');
}
else {
add_submenu_page('wp-polls/polls-manager.php', __('Manage Polls', 'wp-polls'), __('Manage Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-manager.php');
add_submenu_page('wp-polls/polls-manager.php', __('Add Poll', 'wp-polls'), __('Add Poll', 'wp-polls'), 'manage_polls', 'wp-polls/polls-add.php');
add_submenu_page('wp-polls/polls-manager.php', __('Poll Options', 'wp-polls'), __('Poll Options', 'wp-polls'), 'manage_polls', 'wp-polls/polls-options.php');
add_submenu_page('wp-polls/polls-manager.php', __('Poll Templates', 'wp-polls'), __('Poll Templates', 'wp-polls'), 'manage_polls', 'wp-polls/polls-templates.php');
add_submenu_page('wp-polls/polls-manager.php', __('Uninstall WP-Polls', 'wp-polls'), __('Uninstall WP-Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-uninstall.php');
}
//final
E depois no final da pagina em:
// Set 'manage_polls' Capabilities To Administrator
$role = get_role('editor');
quarta-feira, 6 de novembro de 2013
PHP arredondar dizima centavos - round fractional cents
Para dividir um valor em X vezes nem sempre dá um numero inteiro, sendo assim criei uma fórmula para calcular o valor e cobrar a diferença (a maior ou a menor) na ultima parcela:
Exemplo prático 1:
Total: 4128
Parcelas=7
Valor quebrado antes do programa= 589,7142857142
Depois de rodar o programa teremos:
Parcela 1: 589.71
Parcela 2: 589.71
Parcela 3: 589.71
Parcela 4: 589.71
Parcela 5: 589.71
Parcela 6: 589.71
Parcela 7: 589.74
Ou seja na parcela 7 há 0,03 centavos a mais para fechar o valor quebrado (589,7142857142).
Exemplo prático 2:
Total: 56000
Parcelas= 12
Valor quebrado antes do programa= 4666,66666666666667
Depois de rodar o programa teremos:
Parcela 1: 4666.67
Parcela 2: 4666.67
Parcela 3: 4666.67
Parcela 4: 4666.67
Parcela 5: 4666.67
Parcela 6: 4666.67
Parcela 7: 4666.67
Parcela 8: 4666.67
Parcela 9: 4666.67
Parcela 10: 4666.67
Parcela 11: 4666.67
Parcela 12: 4666.63
Ou seja na parcela 12 há 0,04 centavos a menos para fechar o valor quebrado (4666,66666666666667).
<?php
$total_pagamento="4128.00";
$parcelas="7";
$valor_quebrado=round(($total_pagamento/$parcelas),2);
$valor_quebrado_total=round($total_pagamento-($valor_quebrado*$parcelas),2);
for ($i=1;$i<=$parcelas;$i++) {
if ($i==$parcelas) $valor_quebrado=$valor_quebrado+$valor_quebrado_total;
echo "Parcelamento $i: $valor_quebrado<br/>";
}
?>
Exemplo prático 1:
Total: 4128
Parcelas=7
Valor quebrado antes do programa= 589,7142857142
Depois de rodar o programa teremos:
Parcela 1: 589.71
Parcela 2: 589.71
Parcela 3: 589.71
Parcela 4: 589.71
Parcela 5: 589.71
Parcela 6: 589.71
Parcela 7: 589.74
Ou seja na parcela 7 há 0,03 centavos a mais para fechar o valor quebrado (589,7142857142).
Exemplo prático 2:
Total: 56000
Parcelas= 12
Valor quebrado antes do programa= 4666,66666666666667
Depois de rodar o programa teremos:
Parcela 1: 4666.67
Parcela 2: 4666.67
Parcela 3: 4666.67
Parcela 4: 4666.67
Parcela 5: 4666.67
Parcela 6: 4666.67
Parcela 7: 4666.67
Parcela 8: 4666.67
Parcela 9: 4666.67
Parcela 10: 4666.67
Parcela 11: 4666.67
Parcela 12: 4666.63
Ou seja na parcela 12 há 0,04 centavos a menos para fechar o valor quebrado (4666,66666666666667).
<?php
$total_pagamento="4128.00";
$parcelas="7";
$valor_quebrado=round(($total_pagamento/$parcelas),2);
$valor_quebrado_total=round($total_pagamento-($valor_quebrado*$parcelas),2);
for ($i=1;$i<=$parcelas;$i++) {
if ($i==$parcelas) $valor_quebrado=$valor_quebrado+$valor_quebrado_total;
echo "Parcelamento $i: $valor_quebrado<br/>";
}
?>
quarta-feira, 9 de outubro de 2013
Gmail - não enviar para caixa de SPAM
Para que isso não ocorra tem um procedimento simples no Gmail:
- Entre no Webmail/Gmail;
- Clique no icone roda de engrenagem (fica a direita) e escolha configurações;
- No menu horizontal clique em Filtros;
- Clique em Criar novo filtro;
- Vai abrir uma janela, no campo de: coloque e-mail *@empresa_que_quer_liberar.com.br (o asterisco significa todos os emails dessa empresa);
- Clique em Criar Filtro com esta pesquisa;
- Na proxima tela clique em nunca enviar para SPAM;
- Clique em Criar Filtro.
segunda-feira, 19 de agosto de 2013
MySQL pesquisar as mesmas colunas em tabelas diferentes sem duplicar
A idéia aki é puxar valores de uma mesma coluna que está em duas tabelas diferentes sem duplicar.
Por exemplo: eu tenho SANTOS na TABELA1 e na TABELA2 e tenho MANAUS na TABELA1 e tenho SUAPE na TABELA2.
O resultado será:
<select name='Porto' id='Porto'>
<?php
$sql='';$err='';$linha='';
$sql=mysql_query("
(select DISTINCT PORTO from TABELA1 where O_Q_VC_QUISER='REPOSTA Q PRECISAR')
UNION
(select DISTINCT PORTO from TABELA2 where O_Q_VC_QUISER='REPOSTA Q PRECISAR')
order by PORTO // notem q o order by fica fora do select
");
$err=mysql_error();
if ($err) echo "<option>$err</option>";
while ($linha=mysql_fetch_array($sql)):
$porto=$linha['PORTO'];
echo "<option value='$porto'>$porto</option>\n";
endwhile;
?>
</select>
Por exemplo: eu tenho SANTOS na TABELA1 e na TABELA2 e tenho MANAUS na TABELA1 e tenho SUAPE na TABELA2.
O resultado será:
- Manaus
- Santos
- Suape
<select name='Porto' id='Porto'>
<?php
$sql='';$err='';$linha='';
$sql=mysql_query("
(select DISTINCT PORTO from TABELA1 where O_Q_VC_QUISER='REPOSTA Q PRECISAR')
UNION
(select DISTINCT PORTO from TABELA2 where O_Q_VC_QUISER='REPOSTA Q PRECISAR')
order by PORTO // notem q o order by fica fora do select
");
$err=mysql_error();
if ($err) echo "<option>$err</option>";
while ($linha=mysql_fetch_array($sql)):
$porto=$linha['PORTO'];
echo "<option value='$porto'>$porto</option>\n";
endwhile;
?>
</select>
quarta-feira, 1 de maio de 2013
Webmail e Google Docs
Tutorial do Google Docs:
http://www.youtube.com/watch? v=zcCyxJG0o6g
Na video-aula acima de apenas 7 minutos vcs aprendem a criar e manter os documentos na "nuvem", ensina até o recurso para verificar as revisões que foram feitas no arquivo original.
O Google Docs faz pesquisa tanto pelo nome do documento quanto pelo texto dentro do documento.
Tutorial Webmail
Criar Marcadores
Adicionar Cores aos marcadores:
Criar uma regra para sempre que receber um e-mail ele apareça com o Marcador/Cor escolhido:
- Clicar no botão de Engrenagem no canto superior Direito da tela;
- Escolher Configurações;
- No menu horizontal escolher Filtros;
- Clicar em Criar Filtro;
- No primeiro campo coloque *@email da empresa -> exemplo: *@laweb.com.br (o asterisco é muito importante) apenas uma dica se o e-mail for gmail ou hotmail o melhor é colocar assim luis@gmail.com(pq o asterisco indica TODOS e vc não qr todos os emails @gmail com a mesma cor/marcador)
- Clique em Criar filtro com esta pesquisa;
- Na próxima tela marque -> Aplicar o marcador (e escolha o marcador), marque também Nunca enviar para SPAM;
- Marque Também aplicar o filtro a XX correspondentes...
- Clique em criar filtro.
quarta-feira, 20 de fevereiro de 2013
terça-feira, 5 de fevereiro de 2013
Gmail selecionar/apagar e-mails por tamanho ou por data - Gmail select/delete many e-mails by size or by date
Faça a pesquisa por datas:
after:2005/01/01 before:2010/12/31
pesquisa por tamanho (maior que 2 MBs e de um ano atrás):
larger:2m older_than:1y
Depois basta clicar no selecionar todas e no ícone da lixeira.
terça-feira, 11 de dezembro de 2012
Ubuntu instalando OCI8 para rodar no PHP
Prerequisites:
Confira a instalação rodando phpinfo() no servidor.
sudo apt-get install build-essential sudo apt-get install php5-dev php-pear libaio1
You will need the Basic (58MB) and SDK (600K) -- baixe as versões ZIP. The Basic Lite version does not work.
Vc precisará saber se seu servidor é AMD ou Intel e se é 32 ou 64 bits, clique aqui para conferir os comandos
Vc precisará saber se seu servidor é AMD ou Intel e se é 32 ou 64 bits, clique aqui para conferir os comandos
crie a pasta lib se ela não existir
cd /usr/local/lib sudo unzip <location-of-instant-client-basic> sudo unzip <location-of-instant-client-sdk> cd instantclient_11_2 sudo ln -s libclntsh.so.11.1 libclntsh.so
renomeie a pasta instantclient_11_2 mv instantclient_11_2 instantclient
The symbolic link is needed during the compilation step later.
sudo pecl install oci8
You will be prompted for the location of the library:
instantclient,/usr/local/lib/instantclient no meu caso eu apenas dei [enter] para ele localizar automaticamente, da maneira acima não funcionou.
PHP5 Instructions
You should now create a new oci8.ini file which will be included when loading php.ini (Editing the php.ini is discouraged):
nano /etc/php5/conf.d/oci8.ini
this will create a blank file; add to this file:
extension=oci8.so
segunda-feira, 10 de dezembro de 2012
MySQL select a partir de
No select abaixo teremos emails a partir da letra G
SELECT email, id
FROM `TABELA`
WHERE LOWER( LEFT( email, 1 ) ) NOT
IN (
'a', 'b', 'c', 'd', 'e', 'f'
)
ORDER BY email
Aki apenas letras:
SELECT `empresa`
FROM `TABELA`
WHERE empresa NOT
REGEXP '^[0-9]+$'
E aki apenas numeros:
SELECT * FROM table WHERE columnName REGEXP '^[0-9]+$'sábado, 8 de dezembro de 2012
Exim4 configuração
Arquivo update.conf:
dc_eximconfig_configtype='smarthost' # veja as configurações detalhadas abaixo
dc_other_hostnames='COLOQUE AQUI O HOSTNAME SECUNDARIO'
dc_local_interfaces='127.0.0.1'
dc_readhost='COLOQUE AQUI O HOSTNAME PRINCIPAL'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='COLOQUE AQUI SEUS IPS'
dc_smarthost='COLOQUE AQUI SEU SMARTHOST' # se vc não souber pergunte para o seu provedor de acesso (é o servidor de smtp do seu provedor)
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
Geralmente o "problema" esta nesta variavel dc_eximconfig_configtype em caso de duvida pergunte ao seu provedor de acesso qual deve usar.
Não esquecer de mudar:
de www-data para o e-mail desejado:
vi /etc/email-addresses
hostname desejado
vi /etc/hosts
vi /etc/hostname
Não esquecer de tirar totalmente o sendmail:
sudo apt-get --purge remove sendmail-base sendmail-cf sendmail-doc
Descrição das variaveis acima:
dc_eximconfig_configtype='smarthost' # veja as configurações detalhadas abaixo
dc_other_hostnames='COLOQUE AQUI O HOSTNAME SECUNDARIO'
dc_local_interfaces='127.0.0.1'
dc_readhost='COLOQUE AQUI O HOSTNAME PRINCIPAL'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='COLOQUE AQUI SEUS IPS'
dc_smarthost='COLOQUE AQUI SEU SMARTHOST' # se vc não souber pergunte para o seu provedor de acesso (é o servidor de smtp do seu provedor)
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
Geralmente o "problema" esta nesta variavel dc_eximconfig_configtype em caso de duvida pergunte ao seu provedor de acesso qual deve usar.
Não esquecer de mudar:
de www-data para o e-mail desejado:
vi /etc/email-addresses
hostname desejado
vi /etc/hosts
vi /etc/hostname
Não esquecer de tirar totalmente o sendmail:
sudo apt-get --purge remove sendmail-base sendmail-cf sendmail-doc
Descrição das variaveis acima:
- CFILEMODE
- The octal file mode of the generated file.
- dc_eximconfig_configtype
- The main configuration type. One of internet, smarthost, satellite, local, exim3manual or none.
- dc_hide_mailname
- Boolean option that controls whether the local mailname in the headers of outgoing mail should be hidden. (Only effective for smarthost and satellite.
- dc_mailname_in_oh
- Internal use only Boolean option that is set by the maintainer scripts after adding the contents of /etc/mailname to the dc_other_hostnames list. This is a transition helper since it wouldn't otherwise be possible to see whether that domain name has been removed from dc_other_hostnames on purpose.
- ue4c_keepcomments
- Boolean option that controls whether update-exim4.conf strips the comments from the target configuration file (default) or leaves them in. This can be overridden by the command line options --keepcomments and --removecomments.
- dc_localdelivery
- name of the default transport for local mail delivery. Defaults to mail_spool if unset, use maildir_home for delivery to ~/Maildir/. This setting does not correspond to a Debconf question and needs to be set manually.
- dc_local_interfaces
- Used as the value for Exim's main configuration option local_interfaces.
- dc_minimaldns
- Boolean option to activate some option to minimize DNS lookups, if set to true a macro DC_minimaldns is defined.
- dc_other_hostnames
- is used to build the local_domains hostlist, together with localhost. This is the list of domains for which this machine should consider itself the final destination.
- dc_readhost
- For smarthost and satellite it is possible to hide the local mailname in the headers of outgoing mail and replace it with this value instead, using rewriting.
- dc_relay_domains
- is used to populate the relay_to_domains domainlist, a list of domains for which we accept mail from anywhere on the Internet but which are not delvered locally, e.g. because this machine serves as secondary MX for these domains.
- dc_relay_nets
- A list of machines (hostlist) for which we serve as smarthost. Used to populate the relay_from_hosts hostlist. Please note that in the default configuration, 127.0.0.1 and ::::1 are always permitted to relay since /usr/lib/sendmail is available anyway and relay control doesn't make sense here.
- dc_smarthost
- List of hosts to which all outgoing mail is passed to and that takes care of delivering it. Multiple hosts are colon separated. Each of the hosts is tried, in the order specified (See exim specification, chapter 20.5). All deliveries go out to TCP port 25. Specifying different ports is not (yet) possible due to upstream restrictions. Used as value of the DCsmarthost macro.
- dc_use_split_config
- Boolean option that controls whether update-exim4.conf uses /etc/exim4/exim4.conf.template (false) or the multiple files below /etc/exim4/conf.d (true) as input.
Assinar:
Postagens (Atom)
Linux bash file returns unexpected token `$'do\r''
open file in vi edit with vi filename.sh command; type in vi :set ff=unix command; save file with :wq It will save the file with unix...
-
Adicionar ♦ 10 dias a partir de hoje echo date('d/m/Y', strtotime("+10 days")); ♦ 10 dias a partir de uma data echo ...
-
function retira_acentos($texto) { $array1 = array( "á", "à", "â", "ã", "ä", "é...