Strict Standards: Non-static method CodeColorerLoader::Enable() should not be called statically in /home/k6000169/public_html/wp-content/plugins/codecolorer/codecolorer.php on line 254
Php | Programador freelance argentina

php

Como habilitar short open php desde el archivo .htaccess

Para poder usar la etiqueta short open de php “<?” hay que incluir lo siguiente en el archivo .htaccess


1
php_value short_open_tag 1

¿Cómo saber cuantas cifras tiene un número?

El logaritmo es la inversa de la potencia.

Entonces, al hallar el logaritmo en base 10 de determinado número, la parte entera representa la cantidad de cifras del número.

Por ejemplo:

Log(1) => 0
Log(9) => 0,95…
Log(10) => 1
Log(11) => 1,04…
Log(99) => 1,99…
Log(100) => 2

Así que de esta manera se puede hacer una función simple para contar las cifras. Por ejemplo en PHP se podría contar las cifras con la siguiente función:


function getCifras($number) {
return intval(log($number, 10)) + 1;
}

echo getCifras(11); // imprime 2
echo getCifras(100); // imprime 3
echo getCifras(1999); // imprime 4

?>

Programador PHP Argentina

Hola.

Soy un programador freelance de Argentina que se dedica al desarrollo de aplicaciones web.

Desde hace más de 7 años que me dedico al desarrollo de aplicaciones PHP. Empecé con PHP “puro y duro” por así decirlo.

Luego estuve viendo los diferentes frameworks MVP del mercado de los cuales los que más me gustaron son Zend y Symphony.

Y finalmente comencé a trabajar con los diferentes CMS que hay para PHP para no “reinventar la rueda” 🙂

Trabajé con WordPress y Drupal a nivel CMS. Y en cuanto a tiendas online con Magento y Prestashop.

Ahora mismo, además de dedicarme al desarrollo de aplicaciones web me encuentro trabajando en el desarrollo de aplicaciones móviles. Principalmente me dedico a iOS con Objective, pero también (dependiendo del proyecto) trabajo con Android (desde 2.2 en adelante) y con jQuery Mobile (para el caso de web applications móviles).

Si tenés alguna duda o querés un presupuesto contactame acá que hoy mismo me pongo en contacto con vos.

Dónde está el archivo php.ini en Mac

El archivo php.ini en Mac se encuentra en la ruta /usr/php.ini

Si no se encuentra allí hay que copiarlo desde /etc/php.ini.default y darle permisos de escritura para poder modificarlo

# sudo cp /etc/php.ini.default /etc/php.ini
# sudo chmod u+w /etc/php.ini

Cómo instalar mcrypt en Mountain Lion

La libería mcrypt para PHP no viene instalada por defecto.

Para instalarla hay que seguir una serie de pasos.

1) Instalar las command line tools de xcode.

2) Instalar mcrypt. Para ello.

Abrir una terminal (Applications > Utilities > Terminal). Y crear un directorio llamado mcrypt

# cd ~ ; mkdir mcrypt ; cd mcrypt

Descargar la libería mcrypt desde Sourceforge.

Descargar el código fuente de PHP. Para saber qué versión de PHP descargar tipear en la consola:

# php -v

Mover los archivos descargados a ~/mcrypt y expandirlos.

Configurar libmcrypt

Ir al directorio de mcrypt:

# cd libmcrypt-2.5.8
# ./configure
# make
# sudo make install

Ahora la librería mcrypt está configurada e instalada.

Errores de Autoconf

Si tenés errores como el siguiente:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
Significa que no está instalado autoconf. Para instalarlo ir a la consola ir tipear lo siguiente:
# cd ~/mcrypt<
# curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
# tar xvfz autoconf-latest.tar.gz
# cd autoconf-2.69/
# ./configure
# make
# sudo make install

Compilar la extensión mcrypt para php.

# cd ../php-5.3.13/ext/mcrypt/
# /usr/bin/phpize

La salida tiene que ser

Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
configure.in:3: warning: prefer named diversions
configure.in:3: warning: prefer named diversions


# ./configure
# make
# sudo make install

La salida tiene que ser:

Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20090626/


Habilitar la extensión mcrypt para PHP.

Abrir el archivo /etc/php.ini (si no se encuentra allí lo podés copiar del default) y agregar la siguiente linea al final del archivo:

extension=mcrypt.so

Cómo obtener todos los posibles valores de los atributos de un producto configurable.

Para obtener todos los posibles valores de los atributos un producto configurable se puede utilizar el siguiente código:

 


// Collect options applicable to the configurable product
$productAttributeOptions = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product);
$attributeOptions = array();
foreach ($productAttributeOptions as $productAttribute) {
foreach ($productAttribute['values'] as $attribute) {
$attributeOptions[$productAttribute['label']][$attribute['value_index']] = $attribute['store_label'];
}
}

Cómo eliminar todas las ordenes de prueba en Magento 1.4.2.

Para eliminar todas las órdenes de prueba de un site Magento (testeado en la versión 1.4.2) lanzar el siguiente query: 

 

SET FOREIGN_KEY_CHECKS = 0;

-- TRUNCATE TABLES
TRUNCATE `sales_flat_order`;
TRUNCATE `sales_billing_agreement`;
TRUNCATE `sales_billing_agreement_order`;
TRUNCATE `sales_flat_order_status_history`;
TRUNCATE `sales_flat_order_payment`;
TRUNCATE `sales_flat_quote`;
TRUNCATE `sales_flat_quote_address`;
TRUNCATE `sales_flat_quote_address_item`;
TRUNCATE `sales_flat_quote_payment`;
TRUNCATE `sales_flat_quote_shipping_rate`;
TRUNCATE `sales_flat_shipment`;
TRUNCATE `sales_flat_shipment_comment`;
TRUNCATE `sales_flat_shipment_grid`;
TRUNCATE `sales_flat_shipment_item`;
TRUNCATE `sales_flat_shipment_track`;
TRUNCATE `sales_flat_quote_item`;
TRUNCATE `sales_flat_quote_item_option`;
TRUNCATE `sales_flat_order_grid`;
TRUNCATE `sales_flat_order_item`;
TRUNCATE `sales_flat_order_address`;
TRUNCATE `sales_flat_invoice`;
TRUNCATE `sales_flat_invoice_grid`;
TRUNCATE `sales_flat_invoice_item`;
TRUNCATE `sales_flat_invoice_comment`;
TRUNCATE `sales_invoiced_aggregated`;
TRUNCATE `sales_invoiced_aggregated_order`;
TRUNCATE `sales_order_aggregated_created`;
TRUNCATE `sales_order_tax`;
TRUNCATE `sales_flat_creditmemo`;
TRUNCATE `sales_flat_creditmemo_comment`;
TRUNCATE `sales_flat_creditmemo_grid`;
TRUNCATE `sales_flat_creditmemo_item`;
TRUNCATE `sales_payment_transaction`;
TRUNCATE `sales_recurring_profile`;
TRUNCATE `sales_recurring_profile_order`;
TRUNCATE `sales_refunded_aggregated`;
TRUNCATE `sales_refunded_aggregated_order`;
TRUNCATE `sales_shipping_aggregated`;
TRUNCATE `sales_shipping_aggregated_order`;
TRUNCATE `sales_bestsellers_aggregated_daily`;
TRUNCATE `sales_bestsellers_aggregated_monthly`;
TRUNCATE `sales_bestsellers_aggregated_yearly`;
TRUNCATE `sendfriend_log`;
TRUNCATE `tag`;
TRUNCATE `tag_relation`;
TRUNCATE `tag_summary`;
TRUNCATE `wishlist`;
TRUNCATE `log_quote`;
TRUNCATE `report_event`;


-- RESET AUTOINCREMENT TO 1
ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_billing_agreement` AUTO_INCREMENT=1;
ALTER TABLE `sales_billing_agreement_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_shipping_rate` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_track` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_invoiced_aggregated` AUTO_INCREMENT=1;
ALTER TABLE `sales_invoiced_aggregated_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_aggregated_created` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_tax` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_payment_transaction` AUTO_INCREMENT=1;
ALTER TABLE `sales_recurring_profile` AUTO_INCREMENT=1;
ALTER TABLE `sales_recurring_profile_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_refunded_aggregated` AUTO_INCREMENT=1;
ALTER TABLE `sales_refunded_aggregated_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_shipping_aggregated` AUTO_INCREMENT=1;
ALTER TABLE `sales_shipping_aggregated_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_bestsellers_aggregated_daily` AUTO_INCREMENT=1;
ALTER TABLE `sales_bestsellers_aggregated_monthly` AUTO_INCREMENT=1;
ALTER TABLE `sales_bestsellers_aggregated_yearly` AUTO_INCREMENT=1;
ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1;
ALTER TABLE `tag` AUTO_INCREMENT=1;
ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
ALTER TABLE `wishlist` AUTO_INCREMENT=1;
ALTER TABLE `log_quote` AUTO_INCREMENT=1;
ALTER TABLE `report_event` AUTO_INCREMENT=1;


-- RESET STORE ID COUNTERS
TRUNCATE `eav_entity_store`;
ALTER TABLE `eav_entity_store` AUTO_INCREMENT=1;

SET FOREIGN_KEY_CHECKS = 1;

Cómo eliminar todos los productos en Magento con un script de php.

Para eliminar todos los productos de Magento con un script de PHP se puede realizar de la siguiente manera.

Primero se obtienen todos los productos y luego se los recorre con un loop y se los elimina uno a uno.

 



require_once '../app/Mage.php';
Mage::app();

error_reporting(E_ALL);
ini_set('display_errors', '1');

Mage::register('isSecureArea', true);
try {
$collection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*');

$i = 0;
foreach ($collection as $product) {
echo "Eliminando producto: " . $product->getId() . "
";
$product->delete();
}

} catch (Exception $e) {
echo 'Error';
} Mage::unregister('isSecureArea');

ucwords (php) no funciona.

Es un error común intentar aplicar ucwords a una cadena que es en su mayoría mayúsculas.

La solución es antes aplicarle strtolower:

$ucvar = ucwords(strtolower($var));

Importar un site Magento en MAMP

Primero crear el directorio para el site, y bajar los archivos desde el FTP.
Luego, exportar la base de datos en el servidor. Para importar el dump file del site con Magento en MAMP, hay que incluir la siguiente sentencia al comienzo del archivo SQL:

SET FOREIGN_KEY_CHECKS = 0;
Luego por consola, ejecutar la siguiente línea:
$ cd /Applications/MAMP/Library/bin
$ ./mysql -u root -p mylocaldb < /Users/myuser/bd_dump.sql
Para crear el Virtual Host, hay que editar el archivo /Applications/MAMP/conf/apache/httpd.conf y agregar el Virtual Host:

ServerName mysite.local
DocumentRoot "/Users/myuser/Work/MAMP/mysite.com"

 

También hay que editar el archivo /etc/hosts y agregar lo siguiente:

127.0.0.1    mysite.local
::1 mysite.local
Y por último hay que editar las siguientes filas en MySQL:
select * from core_config_data where path = 'web/unsecure/base_url';
select * from core_config_data where path = 'web/secure/base_url';
Y quizás esta: 
select * from core_config_data where path = 'admin/url/custom';

E incluir en ellas la nueva url: http://mysite.local. Acá colgué un script que hice para automatizar un poco la actualización de las URLs.

Si hay problemas luego de todo esto ver acá y acá.