var NovaString = StringAntiga.replace(/(<([^>]+)>)/ig,"");
Programação
Configurando SSL no MAMP 3.02
Acesse o terminal, digite SU para obter permissão de root…
Gerando o certificado local…
cd /Applications/MAMP/conf/apache # generate a private key (will request a password twice) openssl genrsa -des3 -out server.key 1024 # generate certificate signing request (same password as above) openssl req -new -key server.key -out server.csr # Answer the questions Country Name (2 letter code) [AU]: BR State or Province Name (full name) [Some-State]: Rio Grande do Sul Locality Name (eg, city) []: Pelotas Organization Name (eg, company) [Internet Widgits Pty Ltd]: 2WAY DIGITAL SOLUTIONS Organizational Unit Name (eg, section) []: # leave this empty Common Name (eg, YOUR name) []: # leave this empty Email Address []: # leave this empty A challenge password []: # leave this empty An optional company name []: # leave this empty # generate the certificate openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt # remove the password from the server key cp server.key server.tmp openssl rsa -in server.tmp -out server.key
Editando as configurações do apache
Edite o arquivo de configuração do apache (/Applications/MAMP/conf/apache/httpd.conf), e remova o comentário da seguinte linha (próximo a linha 537).
# Secure (SSL/TLS) connections # Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf
Habilitando as configurações HTTPS..
Edite as configurações do httpd-ssl.conf (/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf) para habilitar a porta 443 para localhost, deve ficar semelhante a isto:
DocumentRoot "/Users/Nataniel/Sites/" ServerName localhost:443 ServerAdmin webmaster@localhost ErrorLog "/Applications/MAMP/Library/logs/error_log" TransferLog "/Applications/MAMP/Library/logs/access_log"
Senha padrão do MySQL do MAMP
Senha padrão do MAMP (default password for MySQL under MAMP)
Username: root
Password: root
No vanilla a senha é em branco 😉
Turn COBY MID 7033 and KYROS (Android 4) “original” firmware – delete unnecessary applications – turn clean firmware
Download the necessary files here.
(ATENTION: PUT A MICRO SD ON TABLET TO BACKUP OLD FILES)
1) Unzip the files on a folder
RECOMENDED: ERASE TABLET TO DEFAULT
2) Enable USB debugging on tablet
SETTINGS -> DEVELOPER OPTIONS -> USB DEBUGGING
3) Execute “turn_original.bat”
4) AFTER the reboot, execute the step 2 again (re-enable usb debugging), then press ENTER
5) AFTER the LAST reboot, execute the step 2 again (re-enable usb debugging), then press ENTER to execute final operations (backup, clean default applications and install mobilemarket).
jQuery – Buscando um objeto IFRAME a partir de seu conteúdo
Crie uma iframe…
<iframe src="teste.php"></iframe>
No HTML da iframe crie um campo de ID único…
.... <body> <input type="hidden" id="iframe_unid" value="<? echo md5(microtime()); ?>" /> ....
Lá vai o script para capturar o objeto iframe
$(document).ready(function() { //find this iframe object window.parent.$("iframe").each(function() { if ($(this).contents().find("#iframe_unid").val() == $("#iframe_unid").val()) { alert("Hello from "+$(this).attr("src")); } }); });
Compatibilizar HTML5 para navegadores antigos
Este script compatibiliza o HTML5 para navegadores mais antigos (IE 7, IE8), não esqueça que somente o HTML é renderizado, deixando de funcionar quaisquer funcionalidade de CSS3..
Implantando…
Dentro da tag <head> de seu site, adicione:
<!--[if lte IE 8]> <script src="html5.js" type="text/javascript"></script> <![endif]-->
Buscando posts do Facebook
Desenvolvi este script para o site www.adcw.com.br, ele busca os posts na fan-page da agência no facebook e retorna em um ajax, aqui simplifiquei um pouco, utilizando “echo” mesmo…
<? //@include("config.php"); define("CFG_FACEBOOK_FPID", "157126511023182"); //verifica o arquivo de cache $CACHEFILE = "fbcache.tmp"; if ((!file_exists($CACHEFILE)) || ((time() - filemtime($CACHEFILE)) > 1800)) { $targetdomain = 'www.facebook.com'; $hostIP = gethostbyname($targetdomain); $fp = fsockopen($hostIP, 80, $errno, $errstr, 10); $getString = "GET /feeds/page.php?id=".CFG_FACEBOOK_FPID."&amp;amp;amp; format=rss20 HTTP/1.1\r\nHost: $targetdomain\r\nConnection: close\r\n"; $getString .= "User-agent: Mozilla\r\nAccept: text/plain,text/html\r\n"; $getString .= "\r\n"; $feed_contents = ""; fputs($fp,$getString); while ( (!feof($fp)) && ($line = fread( $fp, 8192 )) ) { $feed_contents.=$line; } $fp = @fopen($CACHEFILE, 'w+'); fwrite($fp, $feed_contents); fclose($fp); $xml = $feed_contents; } else { //se não puxou um novo arquivo do facebook faz a leitura da cache $fp = fopen($CACHEFILE, 'r'); $xml = fread($fp, filesize($CACHEFILE)); fclose($fp); } //interpreta o XML $i=0; $items=array(); $xml = explode("\n",$xml); for ($x=0; $x <= count($xml); $x++) { $line = trim($xml[$x]); if ($line == "<item>") { $i++; } if ($i > 0) { if (substr($line,0,7) == "<title>") { $items[$i]["title"] = htmlentities(trim(strip_tags($line)), ENT_QUOTES|ENT_IGNORE,"UTF-8"); } if (substr($line,0,6) == "<link>") { $items[$i]["link"] = htmlentities(trim(strip_tags($line)), ENT_QUOTES|ENT_IGNORE,"UTF-8"); } if (substr($line,0,8) == "<author>") { $items[$i]["author"] = htmlentities(trim(strip_tags($line)), ENT_QUOTES|ENT_IGNORE,"UTF-8"); } //------------------------------- // pubDate //------------------------------- if (substr($line,0,9) == "<pubDate>") { //formata a data para o formato da ADCW (Original: Wed, 06 Jul 2011 17:14:41) //Thu, 14 Jul 2011 20:45:19 +0100 $data = htmlentities(strip_tags($line), ENT_QUOTES|ENT_IGNORE,"UTF-8"); $data = explode(" ",$data); $items[$i]["pubDate"] = $data[1]." ".strtoupper($data[2])."<br>".$data[3]; } //------------------------------- // Links //------------------------------- $items[$i]["link"] = str_replace("&amp;amp;amp;amp;","&amp;amp;amp;",$items[$i]["link"]); //------------------------------- // description //------------------------------- if (substr($line,0,13) == "<description>") { $data = htmlentities(trim(strip_tags(html_entity_decode($line),"<br>")),ENT_QUOTES|ENT_IGNORE,"UTF-8"); //titulo if (substr($data,0,strlen($items[$i]["title"])) == $items[$i]["title"]) { $data = trim(substr($data,strlen($items[$i]["title"]))); } //autor if (trim(substr($data,0,strlen($items[$i]["author"]))) == $items[$i]["author"]) { $data = trim(substr($data,strlen($items[$i]["author"]))); } //vimeo (retira url do inicio) if (trim(substr($data,0,18)) == "vimeo.comvimeo.com") { $data = trim(substr($data,18,(strlen($data)-18))); } //youtube (retira url do inicio) if (trim(substr($data,0,30)) == "www.youtube.comwww.youtube.com") { $data = trim(substr($data,30,(strlen($data)-30))); } //tira as quebras de linha do inicio do texto if (substr($data,0,12) == "&amp;amp;amp;lt;br /&amp;amp;amp;gt;") { $data = trim(substr($data,12)); } if (substr($data,0,12) == "&amp;amp;amp;lt;br /&amp;amp;amp;gt;") { $data = trim(substr($data,12)); } //tira a mensagem FOTOS DO MURAL if (substr($data,-14) == "Fotos do mural") { $data = substr($data,0,(strlen($data)-14)); } //-- $items[$i]["description"] = $data; } //------------------------------- // image -> este campo ?xtraido do rss/description do fb //------------------------------- if (substr($line,0,13) == "<description>") { $data = trim(strip_tags(html_entity_decode($line),"<img>")); $data = explode(chr(34),$data); for ($y=0; $y <= count($data); $y++) { if ((substr($data[$y],0,7) == "http://") &amp;amp;amp;&amp;amp;amp; (substr($data[$y],-4) == ".jpg")) { $data[$y] = str_replace("_s.jpg","_n.jpg",$data[$y]); //troca imagem pequena do RSS pela imagem tamanho normal $items[$i]["image"] = $data[$y]; } } } //------------------------------- //------------------------------- // video(vimeo) -> este campo extraido do rss/description do fb //------------------------------- if (substr($line,0,13) == "<description>") { $data = trim(strip_tags(html_entity_decode($line),"<a>")); $data = explode(chr(34),$data); for ($y=0; $y <= count($data); $y++) { if (substr($data[$y],0,17) == "http://vimeo.com/") { $items[$i]["video"] = $data[$y]; } } } //------------------------------- //------------------------------- // video(youtube) -> este campo extraido do rss/description do fb //------------------------------- if (substr($line,0,13) == "<description>") { $data = trim(strip_tags(html_entity_decode($line),"<a>")); $data = explode(chr(34),$data); for ($y=0; $y <= count($data); $y++) { if (substr($data[$y],0,31) == "http://www.youtube.com/watch?v=") { $items[$i]["video"] = $data[$y]; } } } //------------------------------- } } //injeta o item mais recente no site usando jquery e eval if (count($items) > 0) { //echo $items[1]["description"]; echo "<h2>".$items[1]["pubDate"]."</h2>\n"; echo "<h1><a href=\"".$items[1]["link"]."\">".$items[1]["title"]."</a></h1>\n"; if ($items[1]["video"] != "") { if (substr($items[1]["video"],0,17) == "http://vimeo.com/") { echo "<iframe id=\"facebook_image\" src=\"http://player.vimeo.com/video/".substr($items[1]["video"],17,(strlen($items[1]["video"])-17))."\" width=\"530\" height=\"310\" frameborder=\"0\" allowfullscreen></iframe>"; } elseif (substr($items[1]["video"],0,31) == "http://www.youtube.com/watch?v=") { echo "<iframe id=\"facebook_image\" width=\"530\" height=\"310\" src=\"http://www.youtube.com/embed/".substr($items[1]["video"],31,(strlen($items[1]["video"])-31))."\" frameborder=\"0\" allowfullscreen></iframe>"; } else { echo "<img id=\"facebook_image\" src=\"".$items[1]["image"]."\" />\n"; } } else { echo "<img id=\"facebook_image\" src=\"".$items[1]["image"]."\" />\n"; } } else { echo "Não foi possível buscar os dados...\n"; } ?>
Exportando e importando dados no MySQL
Existem muitas formas de exportar/importar dados em um servidor MySQL (remoto ou local), para bancos de dados de pequeno porte até mesmo pela web pode-se realizar esta operação (uma vez que ferramentas como o PHPMyAdmin permitem o download e upload de arquivos SQL compactados), já para bancos de dados de maior porte é necessário uma ferramenta local para enviar os dados, nesta dica mostrarei como exportar e importar dados utilizando o client nativo do MySQL.
Exportando dados
<br /> mysqldump -h <endereco ip ou host do servidor> -u <usuario> --password=<senha> <nome do banco> > <caminho do arquivo a ser gerado><br /> Exemplo:<br /> mysqldump -h 127.0.0.1 -u workuser --password=secretpw workdb > C:\exportacao_wdb.sql<br />
Importando dados
<br /> mysql -h <endereco ip ou host do servidor> -u <usuario> --password=<senha> <nome do banco> < <caminho do arquivo sql><br /> Exemplo:<br /> mysql -h db.hostremoto.com -u workuser --password=secretpw workdb < C:\exportacao_wdb.sql<br />
Ferramentas
Existem algumas ferramentas de gerenciamento que auxiliam (e muito) o desenvolvedor, vou dar a dica de algumas que utilizo aqui…
Plataforma: WEB
Ferramenta: PHPMyAdmin
Site: www.phpmyadmin.net
Plataforma: MacOsX
Ferramenta: Sequel PRO
Site: www.sequelpro.com
Plataforma: Windows
Ferramenta: MySQL Front
Site: www.mysqlfront.de
Qualquer dúvida utilize os comentários, valeu e até mais!!!
Instalar APACHE + PHP + MySQL no Windows 7
– Atualizado em 07/05/2014
Apache
Instalação
- Baixe o APACHE Http Server, na versão Win32 Binary without crypto (no mod_ssl) (MSI Installer) no site http://httpd.apache.org/download.cgi
- Inicie a instalação
- Na tela Server Information, digite as informações conforme abaixo, substituindo o Administrator’s email por seu email
- Em Server Type, selecione Custom
- Na tela Custom Setup, selecione as opções como abaixo, clique em Change para mudar o diretório para: C:\apache\
- Na última tela de instalação, clique em Install
Configuração
- Edite o arquivo C:\apache\conf\httpd.conf
- Descomente a linha
LoadModule rewrite_module modules/mod_rewrite.so
- Adicione dentro de dir_module “index.php index.phtml”
DirectoryIndex index.html index.php
- Dentro de “Directory C:/apache/htdocs“, modifique a chave AllowOverride para All
Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all
- Role até o fim do arquivo e adicione as seguintes linhas
PHPIniDir "C:\\apache\\php" LoadModule php5_module "C:\\apache\\php\\php5apache2_2.dll" <IfModule mod_mime.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule>
PHP
Instalação
- Baixe o ZIP do PHP 5.2 VC6 x86 Thread Safe em http://windows.php.net/download/
- Descompacte o conteúdo do arquivo em C:\apache\php\
Configuração
- Renomeie o arquivo “C:\apache\php\php.ini-recommended” para “php.ini“
- Edite o arquivo php.ini e modifique as seguintes chaves
short_open_tag = On ... error_reporting = E_ALL & ~E_NOTICE ... display_errors = On display_startup_errors = On ... extension_dir = "./ext" ... upload_max_filesize = 50M ... extension=php_gd2.dll extension=php_gettext.dll extension=php_mbstring.dll extension=php_mcrypt.dll extension=php_mysql.dll extension=php_mysqli.dll extension=php_pdo.dll extension=php_sockets.dll extension=php_sqlite.dll ... date.timezone = America/Sao_Paulo
- Edite a variável PATH nas variáveis do sistema (Painel de controle -> Sistema -> Configurações avançadas do sistema -> Avançado -> Variáveis de ambiente), adicione o caminho do php “C:\apache\php“, conforme abaixo
- Reinicie o computador
- Abra o bloco de notas, cole o seguinte código
<? phpinfo(); ?>
- Salve o arquivo em C:\apache\htdocs\info.php
- Abra o navegador e direcione até http://localhost/info.php, se tudo estiver normal uma página de informações do PHP será mostrada
MySQL
Instalação
- Faça o download do Community Server em http://dev.mysql.com/downloads/mysql/
- Inicie a instalação
- Em Choose Setup Type selecione Custom
- Em Custom Setup, clique em Browse, e indique o caminho “C:\apache\mysql” para o instalador
- Clique em Next e depois em Install para concluir a instalação
- No final da instalação, mantenha marcada a opção “Launch the MySQL Instance Configuration Wizard“
Configuração
- No MySQL Instance Configuration, selecione “Detailed Configuration“
- Na próxima tela, de perfil de instalação selecione “Developer Machine“
- Em “database usage“, selecione “Multifunctional Database“
- Em “InnoDB Tablespace Settings“, clique em “Next“
- Na configuração do número de conexões, selecione “Manual Setting” e configure para 20 o número máximo de conexões
- Em “network options”, marque a opção “Add firewall exception for this port“
- Na próxima tela, “default charset set“, selecione “Manual Selected Default Charset Set / Collation” e digite ou selecione “latin1“
- Em “Windows options“, deixe marcado “Install as Windows Service” e “Start MySQL Server automatically“, clique em Next
- Marque “Modify Security Settings“, digite uma nova senha para o root, re-digite no campo abaixo, se você deseja habilitar o acesso root remoto, marque “Enable root access from remote machines“
- Por fim, clique em “Execute” para salvar as configurações selecionadas
- Vá no executar do windows e digite “services.msc” para abrir a tela de serviços, procure pelo serviço MySQL, clique em “Parar serviço“
- Edite o arquivo C:\apache\mysql\my.cnf, e altere a seguinte chave:
datadir="C:/apache/mysql/data"
- Volte ao executar do Windows e digite
%programdata%\MySQL\MySQL Server 5.5\data
- Recorte todos arquivos e cole em “C:\apache\mysql\data\“, sobre-escrevendo os arquivos antigos
- Retorne a tela dos serviços (services.msc) e inicie o serviço MySQL
Final de partida, em caso de dúvidas utilize os comentários.. abraço!