[Docker] Display only containers’ name

Normally, the command ‘docker ps -a’ allows display all the informations of docker, but if we want only the names of containers, we can do like this :

docker ps --format '{{.Names}}'

[PHP] get zip file when visiting browser

With Apache + PHP
This code allows us to download a file zip from browser:


    $your_zip_file = "/path/to/your_zip_file.zip";

    $file_name = basename($yourfile);

    header("Content-Type: application/zip");
    header("Content-Disposition: attachment; filename=$file_name");
    header("Content-Length: " . filesize($your_zip_file ));

    readfile($your_zip_file );


[PHP] Capacité d’agent aérien d’accueillir les voyageurs

Objectif (Version française)

Les périodes de vacances scolaires riment souvent avec fortes affluences dans les aéroports.

Une compagnie aérienne tente de répondre à ce besoin en mobilisant d’avantage d’agents d’escale prêts à accueillir et aiguiller les voyageurs. L’affluence n’étant pas constante, elle décide de mobiliser plus ou moins d’agents selon l’heure de la journée.

Pour simplifier, on considère qu’une journée est divisée en 3 parties :
– de 00h00 à 7h45
– de 7h46 à 15h45
– de 15h46 à 23h59
Une réunion a lieu chaque veille de départ pour estimer le nombre d’agents à mobiliser le lendemain sur chacune des trois périodes de la journée. Un algorithme complexe calcule une projection sur les heures d’arrivées de chaque voyageur.

En supposant qu’un agent peut répondre à 30 voyageurs sur une période donnée, vous devez estimer le minimum d’agent à mobiliser sur chaque période.


Format des données

Ligne 1 : un entier N représentant le nombre de voyageurs dans une journée
Ligne 2 à N+1 : une heure H au format HH:MM correspondant à une heure d’arrivée d’un voyageur

Trois nombres séparés par des espaces correspondant aux nombres d’agents d’escale à mobiliser sur chaque période

Objectif (Version chinoise)










[PHP] Calculer les clients sont globalement satisfaits

Objectif (Version française)

Une entreprise spécialisée dans les sondages cherche à évaluer la satisfaction client d’un supermarché. Elle décide de mesurer le temps d’attente des clients dans la queue.

Si un client atteint les 20 minutes d’attente, il laisse son caddie et s’en va du magasin. Il est considéré comme client « perdu ».

L’enquête estime à la fin du mois que les clients sont globalement satisfaits s’ils ont attendu en moyenne moins de 7 minutes et que moins de 10% des clients sont « perdus ».

Vous devez déterminer la satisfaction client


Format des données

Ligne 1 : un entier N représentant le nombre de clients dans le mois.
Ligne 2 à N+1 : un entier M compris entre 0 et 20 correspondant au temps d’attente par client.

La chaîne OK si les clients sont globalement satisfaits, KO sinon.


Objectif (Version Chinese)





第一行:N 一个月总共客户人数






Continue reading

By Bo Posted in PHP

[PHP]memory limit


Encountered problem :

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes)


Tempory solution for debug :

Add ini_set(‘memory_limit’, ‘-1’);  in for example index.php to turn off the default memory control of PHP.

This is not the best solution, because it means that the program can use as much memory as it wants, maybe that will cause a memory overflow. The best way is to improve the program, for example pagnation to a batch etc.

[PHP] PHP code showing on the page instead of being executed

Environment :
Ubuntu Server 14.04
PHP 5.5.9

Problem :
PHP code showing on the page instead of being executed

Reason :
The reason that I met this problem is because the PHP file I used begin with (<?) instead of (<?php) which the short tag is deprecated by default.

Solution :
Find php.ini in /etc/php5/apache2, make sure the option short_open_tag=On, if not, change if to On.

Another solution more complete from stack overflow : http://stackoverflow.com/a/5121589/740546

[OpenShift] Deploy PHP/MySQL in OpenShift got 503 Service Temporarily Unavailable / 504 Gateway Time-out

Context :

The objective is to deploy the connection of MySQL with PHP in an OpenShift Server.
OpenShift is PaaS provided by Red Hat. For more info, read wikipedia OpenShift.

Problem :

The server returns :

503 Service Temporarily Unavailable


504 Gateway Time-out

Continue reading

[Install PHPUnit] Installing PEAR and PHPUnit on WAMP and Windows 7 (no longer maintained from PHPUnit 3.7)

First of all, thanks to @Sebastian Bergmann for reminding and sorry for my careless about this reblog because End of Life for PEAR Installation Method to PHPUnit from github and The package PHPUnit is not maintained anymore and has been superseded. Package has moved to channel pear.phpunit.de, package PHPUnit from pear.php.net.

So this blog should be a reblog of installing PHPUnit(<3.7) in Windows7 from http://thecancerus.com/ and I found it was still useful for understanding the theory of configuration of php(in wamp) and the environment variables.

The newest manual installation of PHPUnit in windows can be found its documentation.

Continue reading

[PHP] upload file and zip with password

Background (needs):
1. upload a file without checking the type (whatever the type)
2. move the file into a specific folder
3. zip the file with password

Thanks to the function move_uploaded_file, it is very simple to move file to wherever you want, of course, you must have the privilege to do that.

As it is quite simple, I put the source code directely here :
Continue reading

[PHP] PHP Warning: Module ‘mcrypt’ already loaded in Unknown on line 0

Like in the title, PHP Warning: Module ‘mcrypt’ already loaded in Unknown on line 0.
When we launch whatever a command PHP, for example php -v, we will see the warning :

# php -v
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0

This warning was caused by the duplicated configuration of the mcrypt extension.

To check it, we can use this command (the path could be changed depends on the local configuration):

grep "extension=mcrypt.so" /etc/php5/cli/php.ini


grep "extension=mcrypt.so" /etc/php5/cli/conf.d/mcrypt.ini

If the two command return the same thing : “extension=mcrypt.so”, this means the extension is included two times.

The solution is simple, juste remove one of these configuration, that will be ok.