Búsqueda


Categorías

C# [15]
PHP [6]
Zend [1]
FileMaker [1]
.NET [6]
CVS [3]
General [9]
Javascript [2]
Paypal [1]
.NET Compact Framework [3]
C++ [1]
mysql [4]
Linux [1]

Últimos post

Dónde guardar los archivos de configuración en ClickOnce
phpinfo: Valores en error_reporting
Notes about Zend Server and Zend Studio setup
What's new in C# 4
Resolving a 'sticky tag is not a branch' error
Resumen del CodeCamp
CodeCamp Tarragona 2009
Acerca de la calidad del código
ClickOnce en Linux
Programando en PHP (y con CVS) en Visual Studio 2008

Sindicación

RSS 0.90
RSS 1.0
RSS 2.0
Atom 0.3

phpinfo: Valores en error_reporting

ctg | 18 Octubre, 2011 15:57

La información que aparece en phpinfo siempre es muy útil. Aunque a veces, la información no este muy "clara".

Por ejemplo, para saber el estado de error_reporting, aparece de la siguiente forma:

 

En error_reporting se encuentra el valor en decimal, en vez de mostrar de una forma más concisa que valores se estan utilizando.

En ocasiones, no se puede acceder de manera fácil a php.ini (permisos, etc) Por eso, he puesto los valores de las constantes de error de PHP.
 
E_RECOVERABLE_ERROR = 4096
E_USER_NOTICE = 1024
E_USER_WARNING = 512
E_USER_ERROR = 256
E_COMPILE_WARNING = 128
E_COMPILE_ERROR = 64
E_CORE_WARNING = 32
E_CORE_ERROR = 16
E_NOTICE = 8
E_PARSE = 4
E_WARNING = 2
E_ERROR = 1
 
E_ALL = 6143 = 1011111111111

 
Ejemplos:

E_ALL & ~E_NOTICE = 6143 – 8 = 6135
E_ALL & ~E_NOTICE & ~E_WARNING = 6143 – 8 - 2 = 6133

Publicado en PHP . Comentario: (0). Retroenlaces:(0). Enlace

Programando en PHP (y con CVS) en Visual Studio 2008

ctg | 06 Abril, 2009 18:27

Después de pasar más de 3 años utilizando Zend Studio y antes de realizar el cambio a Eclipse que tarde o temprano tendré que realizar, decidí a finales del 2008 perder un poco de tiempo en intentar que Visual Studio 2008 fuera mi principal editor tanto para código C# y también de PHP, Javascript y HTML/CSS.

Además de Zend Studio para mis desarrollos en PHP, utilizaba diferentes add-on según el navegador para depurar código Javascript. Y para editar HTML, hojas de estilo usaba Dreamweaver. A todo esto, se suma nuestro controlador de versiones, que todavía sigue siendo CVS (si funciona bien porque tocarlo), pues tenemos código del siglo pasado :P y utilizamos TortoiseCVS para trabajar más cómodamente.

En resumen, muchas de herramientas para realizar el trabajo diario.

La versión 2005 de Visual Studio ya me permitía realizar la mayoría de las tareas mencionadas anteriormente pero fue en la versión 2008 en donde por fin el editor de HTML/CSS funcionaba decentemente (el mismo que incluía Expression Blend), se añadió un depurador para Javascript, snippets, split view ...

Para poder editar PHP, con coloración de código, Intellisense, depuración y otras características, he utilizado PHP IDE - VS.Php for Visual Studio. Se integra perfectamente con Visual Studio y creo que tiene algo que ver con el proyecto descontinuado Php for Visual Studio (Php4VS) de Codeplex porque ellos mismos lo recomiendan.

Y para poder utilizar CVS desde Visual Studio, he utilizado TamTam CVS SCC, que permite realizar las tareas más habituales, es decir, check-in/check-out, diferencias, histórico...Desde principios de año utilizo PHP como editor de código con CVS y la experiencia ha sido muy positiva y productiva, al tener en un solo producto las herramientas que necesito para mi trabajo diario.

 

Publicado en General, Javascript, PHP, .NET . Comentario: (0). Retroenlaces:(0). Enlace

Diferencias entre fechas con PHP

ctg | 16 Febrero, 2007 00:08

Clase simple, en PHP, para calcular diferencias entre fechas.

<?php
// Class for get the differences in seconds, min, hours, days and weeks between two dates
// Notes: If you only need the difference in days, assure that seconds, min and hours are 0
class TimeSpan
{
     var $diff_seconds;
     var $diff_minutes;
     var $diff_hours;
     var $diff_days;
     var $diff_weeks;
          
     // Date format: YYYYMMDDHHmmSS
     function TimeSpan($date1, $date2)
     {
          // Transform to Unix timestamp
          $epoch_1 = mktime( substr($date1,8,2), substr($date1,10, 2), substr($date1,12, 2), substr($date1,4, 2), substr($date1,6, 2), substr($date1,0, 4) );
          $epoch_2 = mktime( substr($date2,8,2), substr($date2,10, 2), substr($date2,12, 2), substr($date2,4, 2), substr($date2,6, 2), substr($date2,0, 4) );
     
          $this->diff_seconds = $epoch_1 - $epoch_2;
          $this->diff_minutes = floor($this->diff_seconds/60);
          $this->diff_hours   = floor($this->diff_seconds/3600);
          $this->diff_days     = floor($this->diff_seconds/(3600*24));
          $this->diff_weeks   = floor($this->diff_seconds/(3600*24*7));
     }

     // Gets the seconds
     function getDiffSeconds()
     {
          return $this->diff_seconds;
     }
     
     // Gets the minutes
     function getDiffMinutes()
     {
          return $this->diff_minutes;
     }
     
     // Gets the hours
     function getDiffHours()
     {
          return $this->diff_hours;
     }
     
     // Gets the days
     function getDiffDays()
     {
          return $this->diff_days;
     }
     
     // Gets the weeks
     function getDiffWeeks()
     {
          return $this->diff_weeks;
     }
}

?>

Publicado en PHP . Comentario: (0). Retroenlaces:(0). Enlace

Five common PHP design patterns

ctg | 12 Septiembre, 2006 15:21

I found a good article related with the patterns using PHP.

In Five common PHP design patterns, you can find the implementation of next patterns: factory, singleton, observer, chain-of-command and strategy patterns.

Maybe in the future, I would use these patterns in Roci. Actually is difficult implements these patterns for two main reasons: we use PHP4 and merge all this stuff into JShop will be a tremedous headache

Publicado en PHP . Comentario: (0). Retroenlaces:(0). Enlace

Convert HTML into text

ctg | 16 Agosto, 2006 15:01

I put this code here (for future review). It’s a simple code for convert HTML into text (or remove HTML tags) 

<?php
// $document should contain an HTML document.
// This will remove HTML tags, javascript sections
// and white space. It will also convert some
// common HTML entities to their text equivalent.
$search = array ("'<script[^>]*?>.*?</script>'si",
// Strip out javascript "'<[/!]*?[^<>]*?>'si", // Strip out HTML tags
"'([rn])[s]+'", // Strip out white space
"'&(quot|#34);'i",// Replace HTML entities
"'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'&#(d+);'e"); // evaluate as php
$replace = array ("", "", "\1", "\"", "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(\1)");
$text = preg_replace($search, $replace, $document);
?>
 

Publicado en PHP . Comentario: (0). Retroenlaces:(0). Enlace

Enviar email con adjuntos

ctg | 22 Febrero, 2006 23:48

Pongo este código aquí para recordar como se envía un PHP un email con uno o varios ficheros adjuntos.

 <?php
function sendmail ($to, $subject, $text_message, $attachment="")
{
$main_boundary = "----=_NextPart_".md5(rand());
$text_boundary = "----=_NextPart_".md5(rand());
$html_boundary = "----=_NextPart_".md5(rand());
$headers="";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed;\n\tboundary=\"$main_boundary\"\n";
$message="";
$message .= "\n--$main_boundary\n";
$message .= "Content-Type: multipart/alternative;\n\tboundary=\"$text_boundary\"\n";
$message .= "\n--$text_boundary\n";
$message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 7bit\n\n";
$message .= "\n--$text_boundary\n";
$message .= "Content-Type: multipart/related;\n\tboundary=\"$html_boundary\"\n";
$message .= "\n--$html_boundary\n";
$message .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= str_replace ("=", "=3D", $text_message)."\n";
if (isset ($attachment) &&amp; $attachment != "" && count ($attachment) >= 1)
{
for ($i=0; $i<count ($attachment); $i++)
{
$attfile = $attachment[$i];
$file_name = basename ($attfile);
$fp = fopen ($attfile, "r");
$fcontent = "";
while (!feof ($fp))
{
$fcontent .= fgets ($fp, 1024);
}
$fcontent = chunk_split (base64_encode($fcontent));
@fclose ($fp);
$message .= "\n--$html_boundary\n";
$message .= "Content-Type: application/octetstream\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-Disposition: inline; filename=\"$file_name\"\n";
$message .= "Content-ID: <$file_name>\n\n";
$message .= $fcontent;
}
}
$message .= "\n--$html_boundary--\n";
$message .= "\n--$text_boundary--\n";
$message .= "\n--$main_boundary--\n";

$result = @mail ($to, $subject, $message, $headers);
return $result;
}
?>

Publicado en PHP . Comentario: (0). Retroenlaces:(0). Enlace