Have you ever tried to position a list on the right side of a left-floating image? Here is a nearly(?) perfect solution.
Tag Archives: file
Capifony symfony 2.1 and composer on Mac
Symfony 2 and capifony are great – together they allow the easy deployment of great web applications. Symfony2.1 switched to composer – another great tool. But unfortunately this switch might result in a problem.
FastCGI, PHP, Symfony2 with basic auth not working
Just had a little issue that seams to be common in the web. Got a new server with Plesk 11 (sorry for that) and it took me nearly a day to get it working and setup for capifony deployment of Symfony2 projects.
The typical issues with not correctly set access rights for the root directory of the project (should be 755), manually editing of parameters.ini and other stuff was ok. But what nearly killed me was that my Plesk installation always returned a 503 when running PHP as apache module. FastCGI was default and seemed to be working, so I went with this.
Unfortunately this did not work with the admin interface that was running in a “virtual” subdirectory. It was not possible to login. In the background it is using the default, simple, boring and potentially unsecure basic authentification.
Did you know that there is a problem with FastCGI, Symfony2 and basic authentification? I did not, but know I know. It is fixed in the current release (2.0.16) – which is good. But unfortunately there is a RewriteRule that has to be written inside your web/.htaccess. Check the comment in src/symfony/src/Symfony/Component/HttpFoundation/ServerBag.php:
* php-cgi under Apache does not pass HTTP Basic user/pass to PHP by default * For this workaround to work, add this line to your .htaccess file: * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] * * A sample .htaccess file: * RewriteEngine On * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Unfortunately, I tried a different line that was written in the ticket above:
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
This did not work, but resulted in 401 results for all requests. Just remove the ,l which means that this .htaccess file will be left.
So if you are running a Symfony2 project with FastCGI, add this line to your web/.htaccess file:
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
search files by content text using find and grep
Image
This post is about a simple task – but I always forget the syntax. Search recursively for files inside the current directory with a special text in the file content.
find . -name "*.*" -print | xargs grep "SEARCHTEXT" --color=auto
This snippet searches for all files of the current directory that match the name parameter *.* (so you could e.g. search for all .css files with -name “*.css”). The result is displayed with grep – using the nice color-highlighting.
This is especially useful for remove access on linux machines or other unix-based devices.
CsvIterator – csv/tsv import class
About the CsvIterator class
The class CvsIterator.class.php imports and reads csv files – but also other files that have a similar format with a defined separator / delimiter as e.g. a semicolon ; or a tab t or a comma , . Also, enclosures as e.g. quotation marks ” are supported.
Features of CsvIterator class
- Reads csv, tsv files
- Supports headers, returns the rows as named arrays with the appropriate header column name as key
- Iterator – like functionality
- Can be used to read other/custom formats with different delimiters as e.g. pipe | easily
- It even supports enclosures as e.g. quotation marks “
- Copy – include – run – usage
- Requires at least PHP 4.3, no special library necessary
Download the csv / tsv php import class
CsvImport Release 1.1
License: GPL
How to read and import a csv file
include('CsvIterator.class.php');
$csvIterator = new CsvIterator('/path/to/file', true);
while ($csvIterator->next()) {
print_r($csvIterator->current());
}
This code example opens a file in csv format, located at /path/to/file, that contains a first row with a header / description of the csv rows.
How to read and import a tsv file
include('CsvIterator.class.php');
$csvIterator = new CsvIterator('/path/to/file', true, "t");
while ($csvIterator->next()) {
print_r($csvIterator->current());
}
This code example opens a file in tsv (tab-separated values) format, located at /path/to/file, that contains a first row with a header / description of the csv rows. The separator / delimiter is – of course – a tab, encoded as t.
How to read and import a custom format
Assuming that your files have the following format: the entries are separated by a pipe |, each entry is enclosed with quotation marks “” as the first and last character.
A example row would look like "value1"|"value2 that can even contain a pipe | or other characters"
.
The import code would be the following:
$csvIterator = new CsvIterator('/path/to/file', true, '|', '"');
while ($csvIterator->next()) {
print_r($csvIterator->current());
}
That’s it!