Apr 27 2010

Correct headers to download a CSV from PHP

Category: PhpGiulio Pons @ 11:40 am

With these headers you can force a download from php, for example, to let the user download a csv frmatted text.
To make all the thing works you have to print data with “tabs” char, even if csv means “comma separeted value”. This is necessary because Microsoft Excel will understand tabs, but not commas.

header("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"yourfilename.xls\"");
/*
      here print rows with values separeted by tab char: "\t"
*/
Share

Tags: , , , , ,


Dec 29 2009

Tiny url encode and decode with PHP

Category: Php,Spiders & web botsGiulio Pons @ 5:43 pm

The first functions make short urls using tinyurl.com service. It’s a very popular function on the web, you can find it in a lot of files, and it’s always the same:

function doShortURL($url) {
	$short_url= file_get_contents('http://tinyurl.com/api-create.php?url=' . urlencode( $url ) );
	return $short_url;
}

The second function decode a short url in a simple way: I’ve used CURL to get the http header of the short url page. If the header contains a “Location:” header, then it’s a redirect, and the decoded url is the url in the “Location” header string, here is the code:

function doShortURLDecode($url) {
	$ch = @curl_init($url);
	@curl_setopt($ch, CURLOPT_HEADER, TRUE);
	@curl_setopt($ch, CURLOPT_NOBODY, TRUE);
	@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
	@curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
	$response = @curl_exec($ch);
	preg_match('/Location: (.*)\n/', $response, $a);
	if (!isset($a[1])) return $url;
	return $a[1];
}

These functions are included in the Mini Bots Class.

Share

Tags: , , , , , , ,