Bom pessoal, o objetivo desse tutorial é ensinar a vocês como enviar SMS atraves de um script PHP usando um modem, ou seu aparelho de celular.

Neste tuto estou usando o programa de gateway OZEKI NG, que pode ser baixado e usado por 30 dias grátis.

Eu andei pesquisando e não encontrei muita coisa sobre o assunto, porém existem várias empresas que oferecem o serviço gateway de SMS e cobram cerca de 0,20 por mensagem enviada.

As operadoras de telefonia movel cobram R$ 0,50 centavos por dia, para você enviar ilimitadas mensagens resumindo você gastaria apenas R$ 15,00 por mês para enviar ilimitados SMS.
Para começar baixe o programa no site: Ozekisms
http://www.ozekisms.com/index.php?owpn=112
http://www.ozekisms.com/index.php?owpn=433&dpath=%2Fattachments%2F113%2Finstall_1327415285_OzekiNG-SMS-Gateway_4.2.5.zip&dname=Ozeki+NG+SMS+Gateway+v4.2.5&dsize=+%289.3+MB%29+

Em seguida instale o programa(não vou entrar em detalhes da instalação) pois é bem simples além de ter uma opção para detectar automaticamente seu dispositivo e a porta(ex. das portas COM1, COM2, COM3, COM4).

Após instalado você poderá acessar o gateway para fazer as configurações.
http://127.0.0.1:9501/

Você pode se certificar em qual porta seu dispositivo esta atraves do gerenciador de dispositivos do windows.

Apos configurado aguarde alguns minutos para o programa reconhecer o dispositivo e enviar as mensagens.

O proximo passo é criar um formulário e o script php que enviára as informações para o gateway.

Read More →

Cria um arquivo com o nome teste.bat e coloque o codigo abaixo.

WINDOWS – teste.bat

1
2
md pasta_teste
exit

LINUX – teste.sh

1
2
mkdir /var/www/html
exit

O SCRIPT PHP

1
2
3
4
5
//WINDOWS
exec ('C:intranetwwwscriptsteste.bat');
 
//LINUX
exec('/home/teste/teste.sh');

Não esqueça de atribiur as permissões de leitura, escrita e execução para o script.(777)

Demostração básica sobre Encapsulamento utilizando PHP OO

O Encapsulamento é um recurso de proteção de acesso a propriedades de uma classe.

Public -> qualquer um pode acessar
Private -> apenas acesso interno
Protected -> sub-classes podem acessar

 

http://php.net/manual/pt_BR/language.oop5.php

Exemplo

Classe Agenda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Agenda
{
    private $evento;
    private $data;
    private $descricao;
 
		public function setEvento( $evento ) {
			$this->evento = $evento;
		}
		public function getEvento() {
			return $this->evento;
		}
 
		public function setData( $data ) {
			$this->data = $data;
		}
		public function getData() {
			return $this->data;
		}
 
		public function setDescricao( $escricao ) {
			$this->escricao = $escricao;
		}
		public function getDescricao() {
			return $this->escricao;
		}
}

testanto a classe Agenda

1
2
3
4
5
6
7
$agenda = new Agenda();
$agenda->setEvento("Festa dos 100 dias");
$agenda->setData("14/03/2012");
$agenda->setDescricao("A festa mais esperado do ano!!!");
 
 
print_r($agenda);

Imprimir direto pelo PHP

Primeiro você deve configurar o php, abra o arquivo php.ini e descomente a linha a seguir;

1
extension=php_printer.dll

Em seguida reinicie o servidor web.

Crie um arquivo com o nome de teste.txt, e coloque algum texto dentro dele(apenas para testar).
teste.txt

1
estamos testando nosso arquivo teste.txt

O próximo passo é verificar o nome da impressora, a minha esta com o nome de (hplasercolor).

Crie um arquivo com o nome imprimir.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//configure o nome da sua impressora
$printer = "hplasercolor";
if($ph = printer_open($printer))
{
   // Get file contents
//abrindo o arquivo de texto
   $fh = fopen("teste.txt", "rb");
//llendo o arquivo de texto
   $content = fread($fh, filesize("teste.txt"));
   fclose($fh);
 
   // Set print mode to RAW and send PDF to printer
   printer_set_option($ph, PRINTER_MODE, "RAW");
   printer_write($ph, $content);
   printer_close($ph);
}
else "Couldn't connect...";

Para maiores informações visite o site oficial do PHP
http://br2.php.net/manual/pt_BR/book.printer.php

Cannot modify header information – headers already

Recebi alguns emails de usuários com duvidas sobre um erro bem comun que aparece ao usar o comando header. Para corrigir ou fazer com que o erro não apareça mais é bem simples.

Usando a função do PHP (ob_start — Ativa o buffer de saída) é uma das soluções.
http://www.php.net/manual/pt_BR/function.ob-start.php

session_start — Inicia dados de sessão
http://www.php.net/manual/pt_BR/function.session-start.php

Para corrigir esse problema no dreamweaver, pressione CTRL + U(janela de preferencias), em categorias selecione new document(novo documento) e desmarque a opção include unicode signature.

Geralmente esse erro aparece por causa de espaçõs em branco antes da TAG PHP ou por midificação do header apos ja ter impresso informações na tela do usuário, caso esteja chamando arquivos por include, require verifique estes arquivos também.

Até a proxima.

listar os arquivos de um diretorio

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
//caminho do diretório
$diretorio_data = "/home/www/data_txt/";
 
$$dir = @opendir($diretorio_data);
$i=0;
while (false !== ($file = readdir($$dir))) {// while pastas
//ignora diretorios
	if ($file != "." && $file != ".." && $file != "Thumbs.db" && $file != $dir) { // if pastas
		$i++;
		$indice[$i] = "$file";
		echo $nm_arquivo 	= $indice[$i] = "$file";
	}
} // fecha while

Script para criar conta de email no cpanel

Antes de começar acesse o cpanel para descobrir qual o tema(skin) que esta em uso. Geralmente esta informação fica no lado esquerdo.
Veja imagem abaixo;

Tema Skin cPanel

Tema Skin cPanel

Crie um arquivo com um nome qualquer, aqui no exemplo usarei cpanel_criar_email.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
$cpuser = 'usuario'; // Usuário cPanel
$cppass = 'sua-senha'; // Senha de acesso ao cPanel
$cpdomain = 'coloqueseudominio.com.br'; // Seu dominio ou IP do servidor.. ex. seusite.com.br
$cpskin = 'x3';  // indique o tema(skin) que esta em uso
 
 
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Script para criar conta de email no cpanel</title>
<link rel='stylesheet' id='nextgen_gallery_related_images-css'  href='http://blog.fabianobento.com.br/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/nextgen_gallery_related_images.css?ver=3.8' type='text/css' media='all' />
<link rel='stylesheet' id='open-sans-css'  href='//fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clatin-ext&ver=3.8' type='text/css' media='all' />
<link rel='stylesheet' id='dashicons-css'  href='http://blog.fabianobento.com.br/wp-includes/css/dashicons.min.css?ver=3.8' type='text/css' media='all' />
<link rel='stylesheet' id='admin-bar-css'  href='http://blog.fabianobento.com.br/wp-includes/css/admin-bar.min.css?ver=3.8' type='text/css' media='all' />
<link rel='stylesheet' id='wp_greet_box_style-css'  href='http://blog.fabianobento.com.br/wp-content/plugins/wp-greet-box/css/style.css?ver=3.8' type='text/css' media='all' />
</head>
 
<body>
<form name="frmEmail" method="post">
<table width="400" border="0">
<tr><td>Usuário:</td><td><input name="user" size="20" value="" /></td></tr>
<tr><td>Senha:</td><td><input name="pass" size="20" type="password" /></td></tr>
<tr>
  <td>Espa&ccedil;o MB</td>
  <td><select name="select" id="select">
    <option value="100">100 MB</option>
    <option value="250">250 MB</option>
    <option value="500">500 MB</option>
  </select></td>
</tr>
 
<tr><td colspan="2" align="center"><hr /><input name="submit" type="submit" value="Criar conta de email" /></td></tr>
</table>
</form>
<!-- This website uses Linkable Title Html And Php Widget v1.2.5 Wordpress plugin developed by PepLamb (PepLamb.com) -->
<!-- START: Syntax Highlighter ComPress -->
<script type="text/javascript">
    SyntaxHighlighter.autoloader(
        'applescript			http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushAppleScript.js',
        'actionscript3 as3		http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushAS3.js',
        'bash shell				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushBash.js',
        'coldfusion cf			http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushColdFusion.js',
        'cpp c					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushCpp.js',
        'c# c-sharp csharp		http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushCSharp.js',
        'css					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushCss.js',
        'delphi pascal pas		http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushDelphi.js',
        'diff patch			    http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushDiff.js',
        'erl erlang				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushErlang.js',
        'groovy					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushGroovy.js',
        'java					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushJava.js',
        'jfx javafx				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushJavaFX.js',
        'js jscript javascript	http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushJScript.js',
        'perl pl				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushPerl.js',
        'php					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushPhp.js',
        'text plain				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushPlain.js',
        'powershell ps          http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushPowerShell.js',
        'py python				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushPython.js',
        'ruby rails ror rb		http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushRuby.js',
        'sass scss              http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushSass.js',
        'scala					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushScala.js',
        'sql					http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushSql.js',
        'vb vbnet				http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushVb.js',
        'xml xhtml xslt html	http://blog.fabianobento.com.br/wp-content/plugins/syntax-highlighter-compress/scripts/shBrushXml.js'
    );
                    SyntaxHighlighter.defaults['toolbar'] = false;     SyntaxHighlighter.defaults['tab-size'] = 4;
    SyntaxHighlighter.all();
</script>
<!-- END: Syntax Highlighter ComPress -->
 
	<script type='text/javascript'>
/* <![CDATA[ */
var photocrati_ajax = {"url":"http://blog.fabianobento.com.br/photocrati_ajax","wp_site_url":"http://blog.fabianobento.com.br","wp_site_static_url":"http://blog.fabianobento.com.br"};
/* ]]> */
</script>
 
<script type='text/javascript'>
/* <![CDATA[ */
var userSettings = {"url":"/","uid":"1","time":"1388671874"};var commonL10n = {"warnDelete":"You are about to permanently delete the selected items.n  'Cancel' to stop, 'OK' to delete."};/* ]]> */
</script>
<script type='text/javascript' src='http://blog.fabianobento.com.br/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,hoverIntent,utils,common,admin-bar&ver=3.8'></script>
<script type='text/javascript' src='http://blog.fabianobento.com.br/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ajax/static/ajax.js?ver=3.8'></script>
<script type='text/javascript' src='http://blog.fabianobento.com.br/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/static/frame_event_publisher.js?ver=3.8'></script>
		<div id="wpadminbar" class="nojq nojs" role="navigation">
			<a class="screen-reader-shortcut" href="#wp-toolbar" tabindex="1">Skip to toolbar</a>
			<div class="quicklinks" id="wp-toolbar" role="navigation" aria-label="Top navigation toolbar." tabindex="0">
				<ul id="wp-admin-bar-root-default" class="ab-top-menu">
		<li id="wp-admin-bar-menu-toggle"><a class="ab-item"  href="#" title="Menu"><span class="ab-icon"></span></a>		</li>
		<li id="wp-admin-bar-wp-logo" class="menupop"><a class="ab-item"  aria-haspopup="true" href="http://blog.fabianobento.com.br/wp-admin/about.php" title="About WordPress"><span class="ab-icon"></span></a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-wp-logo-default" class="ab-submenu">
		<li id="wp-admin-bar-about"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/about.php">About WordPress</a>		</li></ul><ul id="wp-admin-bar-wp-logo-external" class="ab-sub-secondary ab-submenu">
		<li id="wp-admin-bar-wporg"><a class="ab-item"  href="http://wordpress.org/">WordPress.org</a>		</li>
		<li id="wp-admin-bar-documentation"><a class="ab-item"  href="http://codex.wordpress.org/">Documentation</a>		</li>
		<li id="wp-admin-bar-support-forums"><a class="ab-item"  href="http://wordpress.org/support/">Support Forums</a>		</li>
		<li id="wp-admin-bar-feedback"><a class="ab-item"  href="http://wordpress.org/support/forum/requests-and-feedback">Feedback</a>		</li></ul></div>		</li>
		<li id="wp-admin-bar-site-name" class="menupop"><a class="ab-item"  aria-haspopup="true" href="http://blog.fabianobento.com.br/">Fabiano Bento</a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-site-name-default" class="ab-submenu">
		<li id="wp-admin-bar-view-site"><a class="ab-item"  href="http://blog.fabianobento.com.br/">Visit Site</a>		</li></ul></div>		</li>
		<li id="wp-admin-bar-updates"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/update-core.php" title="1 Plugin Update"><span class="ab-icon"></span><span class="ab-label">1</span><span class="screen-reader-text">1 Plugin Update</span></a>		</li>
		<li id="wp-admin-bar-comments"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/edit-comments.php" title="4 comments awaiting moderation"><span class="ab-icon"></span><span id="ab-awaiting-mod" class="ab-label awaiting-mod pending-count count-4">4</span></a>		</li>
		<li id="wp-admin-bar-new-content" class="menupop"><a class="ab-item"  aria-haspopup="true" href="http://blog.fabianobento.com.br/wp-admin/post-new.php" title="Add New"><span class="ab-icon"></span><span class="ab-label">New</span></a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-new-content-default" class="ab-submenu">
		<li id="wp-admin-bar-new-post"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/post-new.php">Post</a>		</li>
		<li id="wp-admin-bar-new-media"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/media-new.php">Media</a>		</li>
		<li id="wp-admin-bar-new-link"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/link-add.php">Link</a>		</li>
		<li id="wp-admin-bar-new-page"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/post-new.php?post_type=page">Page</a>		</li>
		<li id="wp-admin-bar-new-user"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/user-new.php">User</a>		</li></ul></div>		</li>
		<li id="wp-admin-bar-ngg-menu" class="menupop"><a class="ab-item"  aria-haspopup="true" href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=nextgen-gallery">Gallery</a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-ngg-menu-default" class="ab-submenu">
		<li id="wp-admin-bar-ngg-menu-overview"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=nextgen-gallery">Overview</a>		</li>
		<li id="wp-admin-bar-ngg-menu-add-gallery"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=ngg_addgallery">Add Gallery / Images</a>		</li>
		<li id="wp-admin-bar-ngg-menu-manage-gallery"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=nggallery-manage-gallery">Manage Galleries</a>		</li>
		<li id="wp-admin-bar-ngg-menu-manage-album"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=nggallery-manage-album">Manage Albums</a>		</li>
		<li id="wp-admin-bar-ngg-menu-tags"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=nggallery-tags">Manage Tags</a>		</li>
		<li id="wp-admin-bar-ngg-menu-display_settings"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=ngg_display_settings">Gallery Settings</a>		</li>
		<li id="wp-admin-bar-ngg-menu-other_options"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/admin.php?page=ngg_other_options">Other Options</a>		</li></ul></div>		</li></ul><ul id="wp-admin-bar-top-secondary" class="ab-top-secondary ab-top-menu">
		<li id="wp-admin-bar-my-account" class="menupop with-avatar"><a class="ab-item"  aria-haspopup="true" href="http://blog.fabianobento.com.br/wp-admin/profile.php" title="My Account">Howdy, Bento<img alt='' src='http://0.gravatar.com/avatar/cfa44b1884f20520e243ced33e679143?s=26&d=blank&r=G' class='avatar avatar-26 photo' height='26' width='26' /></a><div class="ab-sub-wrapper"><ul id="wp-admin-bar-user-actions" class="ab-submenu">
		<li id="wp-admin-bar-user-info"><a class="ab-item" tabindex="-1" href="http://blog.fabianobento.com.br/wp-admin/profile.php"><img alt='' src='http://0.gravatar.com/avatar/cfa44b1884f20520e243ced33e679143?s=64&d=blank&r=G' class='avatar avatar-64 photo' height='64' width='64' /><span class='display-name'>Bento</span><span class='username'>fabiano</span></a>		</li>
		<li id="wp-admin-bar-edit-profile"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-admin/profile.php">Edit My Profile</a>		</li>
		<li id="wp-admin-bar-logout"><a class="ab-item"  href="http://blog.fabianobento.com.br/wp-login.php?action=logout&_wpnonce=4fc0b78e9d">Log Out</a>		</li></ul></div>		</li></ul>			</div>
						<a class="screen-reader-shortcut" href="http://blog.fabianobento.com.br/wp-login.php?action=logout&_wpnonce=4fc0b78e9d">Log Out</a>
					</div>
 
		</body>
</html>

Artigo original: http://www.zubrag.com/scripts/

Hoje vou mostrar como fazer upload de arquivos atraves do PHP, para utilizar em outros exemplos que vou postar aqui no blog.

O Upload de arquivos consiste na seleção de um arquivo qualquer no computador do usuário para ser enviado por um formulário HTML, este formulário envia as informações para uma pagina onde copiamos o arquivo do computador local para uma pasta dentro do servidor onde o site está hospedado. Após o upload podemos compactar, renomear, entre muitas outras funções que o PHP oferece.

Crie um arquivo chamado upload.html e coloque dentro o codigo conforme exemplo abaixo.
A action do form esta apontando para o arquivo “upload.php”

1
2
3
4
5
6
7
8
9
10
11
12
<html>
<form id="upload" name="upload" enctype="multipart/form-data" method="post" action="upload.php">
  <p>
    <label>
      <input type="file" name="file" id="file" />
    </label>
  </p>
  <p>
    <input type="submit" name="enviar" id="enviar" value="Enviar arquivo..." />
  </p>
</form>
</html>

Agora vamos criar o arquivo upload.php que fará todo o trabalho.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
//verificamos se o arquivo foi informado
if (isset($_FILES[file])) {
 
$url = "/pasta-uploads/"; //caminho onse será salvo os arquivos
$carregar = $_FILES[file][tmp_name]; //arquivo temporario
$novo_nome = date('Y-m-d')."_".$_FILES[file][name]; //criamos uma variavel com o novo nome do formato AAAA-MM-DD_nome_arquivo
 
      if(move_uploaded_file($carregar,$url)){   //copia o arquivo do computador para o servidor
         rename($url.$carregar, $url.$novo_nome);//renomeia o arquivo
 
        echo "arquivo enviado com sucesso";
      }else {
                echo "falha ao carregar arquivo";
               }
} else {
         echo "Nenhum arquivo foi selecionado!";
         }
 
?>

Para enviar emails atraves do PHP usamos a função mail(), que depende de alguns parametros obrigatorios como Destinatário, Assunto, Mensagem, e outros opcionais como Cabeçalho para dizer o tipo de codificação da mensagem enviada e formato texto ou HTML.

//criamos e atribuimos dados as váriaveis
$remetente = "Da Duder"; //senders name
$email = "email@adress.com"; //senders e-mail adress

$para = "PersonWhoGetsIt@emailadress.com"; //recipient
$mensagem = "The text for the mail..."; //mail body
$assunto = "Subject for reviever"; //subject
$cabecalho = "From: ". $remetente . " <" . $email . ">rn";
//função mail() que envia o email
mail($para, $assunto, $mensagem, $cabecalho);

http://br2.php.net/manual/pt_BR/book.mail.php

Você pode usar para enviar os dados de um formulário e comados HTML na mensagem.
Também poderá implementar com o comando while para envio de email em massa.

Continuação do artigo sobre conexão com Oracle usando PHP. Vou mostrar como fazer consultas em tabelas, criar variaveis, e usar OCI_NO_AUTO_COMMIT.

//conexão com o Oracle
$conexao = oci_connect('usuario', 'senha', '127.0.0.1/nome_servico');

if (!$conexao) {
$erro = oci_error();
trigger_error(htmlentities($erro['message'], ENT_QUOTES), E_USER_ERROR);
exit;
}

//bloco da consulta SQL
$consulta = "select * from cep_localidade";
$stid = oci_parse($conexao, $consulta) or die ("erro");

//Executa os comandos SQL
$exec= oci_execute($stid);

//defini váriaveis
oci_define_by_name($stid, 'COLUNA1', $VAR1);
oci_define_by_name($stid, 'COLUNA2', $VAR2);
oci_define_by_name($stid, 'COLUNA3', $VAR3);

//Abaixo conta a quantidade de linhas retornada da consulta.
echo $nrows = oci_fetch_all($stid, $results);

oci_free_statement($stid);
//fecha a conexão atual
oci_close($conexao);

Pessoal espero que ajude e tire as duvidas de quem vai começar a usar PHP+ORACLE, é um exemplo bem simples de como fazer uma consulta no banco de dados.

Para usar INSERT, UPDATE OU DELETE use a função OCI_NO_AUTO_COMMIT e valide em seguida.

$exec= oci_execute($stid, OCI_NO_AUTO_COMMIT);
//se encontrar algum erro da um rollback NÃO efetiva a query
if (!$exec) {
    $e = oci_error($stid);
    oci_rollback($conexao);  // rollback changes to both tables
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// COMITA a query
$exec = oci_commit($conexao);
if (!r) {
    $e = oci_error($conexao);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}