Como habilitar short open php desde el archivo .htaccess
septiembre 23rd, 2013 Posted by freelo apache, htaccess, php 0 thoughts on “Como habilitar short open php desde el archivo .htaccess”Para poder usar <?
php_value short_open_tag 1
Para poder usar <?
php_value short_open_tag 1
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:
<?php
function getCifras($number) {
return intval(log($number, 10)) + 1;
}
echo getCifras(11); // imprime 2
echo getCifras(100); // imprime 3
echo getCifras(1999); // imprime 4
?>
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.
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
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.
# cd libmcrypt-2.5.8
# ./configure
# make
# sudo make install
Ahora la librería mcrypt está configurada e instalada.
# 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
# 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/
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
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'];
}
}
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;
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');
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));
SET FOREIGN_KEY_CHECKS = 0;
$ cd /Applications/MAMP/Library/bin
$ ./mysql -u root -p mylocaldb < /Users/myuser/bd_dump.sql
<virtualhost *="">
ServerName mysite.local
DocumentRoot "/Users/myuser/Work/MAMP/mysite.com"
</virtualhost>
También hay que editar el archivo /etc/hosts y agregar lo siguiente:
127.0.0.1 mysite.local
::1 mysite.local
select * from core_config_data where path = 'web/unsecure/base_url';
select * from core_config_data where path = 'web/secure/base_url';
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.