Category Archives: programming

Alternative to explode function (PHP)

When you have a set of string in an array or strings separated by comma (or any other character), you can use these two alternative. I prefer the second one 🙂

1
2
3
4
5
6
7
8
9
10
 
//code with explode
$list = explode(",",$astring);
foreach ($astring as $value) {
  echo $value;
  echo "<br />";
}
 
//code with str_replace
echo str_replace(",", "<br />", $astring);

Some technical SEO tips

Worth to consider when building your website to make it search engine friendly.

Important SEO HTML tags

  • title
  • h1
  • h2
  • h3
  • b
  • strong
  • img alt
  • a href title and keyword in achor text

Use http://www.yourdomain.com/ (always with trailing slash at back)

.htaccess redirect to redirect http://yourdomain.com to http://www.yourdomain.com (site-wide)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite\.com [NC]
RewriteRule (.*) http://www.yourdomain.com/$1 [L,R=301]

Free sitemap at xml-sitemaps.com

Standard sitemap name/location – yourdomain.com/sitemap.xml

Robots.txt syntax

User-agent: *
Disallow: /privatefolder/
Disallow: /privatefile.html
Sitemap: http://www.yourdomain.com/sitemap.xml

Function to create and read csv file

Found this function from bin-co. Haven’t tested the function but I think it might be useful for me in the future.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//Get the result of the query as a CSV stream.
//http://www.bin-co.com/php/scripts/csv_import_export/
function CSVExport($query) {
    $sql_csv = mysql_query($query) or die("Error: " . mysql_error()); //Replace this line with what is appropriate for your DB abstraction layer
 
    header("Content-type:text/octect-stream");
    header("Content-Disposition:attachment;filename=data.csv");
    while($row = mysql_fetch_row($sql_csv)) {
        print '"' . stripslashes(implode('","',$row)) . "\"\n";
    }
    exit;
}
 
//Import the contents of a CSV file after uploading it
//http://www.bin-co.com/php/scripts/csv_import_export/
//Aruguments : $table - The name of the table the data must be imported to
//                $fields - An array of fields that will be used
//                $csv_fieldname - The name of the CSV file field
function CSVImport($table, $fields, $csv_fieldname='csv') {
    if(!$_FILES[$csv_fieldname]['name']) return;
 
    $handle = fopen($_FILES[$csv_fieldname]['tmp_name'],'r');
    if(!$handle) die('Cannot open uploaded file.');
 
    $row_count = 0;
    $sql_query = "INSERT INTO $table(". implode(',',$fields) .") VALUES(";
 
    $rows = array();
 
    //Read the file as csv
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $row_count++;
        foreach($data as $key=>$value) {
            $data[$key] = "'" . addslashes($value) . "'";
        }
        $rows[] = implode(",",$data);
    }
    $sql_query .= implode("),(", $rows);
    $sql_query .= ")";
    fclose($handle);
 
    if(count($rows)) { //If some recores  were found,
        //Replace these line with what is appropriate for your DB abstraction layer
        mysql_query("TRUNCATE TABLE $table") or die("MySQL Error: " . mysql_error()); //Delete the existing records
        mysql_query($sql_query) or die("MySQL Error: " . mysql_error()); // and insert the new ones.
 
        print 'Successfully imported '.$row_count.' record(s)';
    } else {
        print 'Cannot import data - no records found.';
    }
}

Create a printer-friendly page

Easiest way to create a printer friendly page is by creating another css file. What I did is just removing the heading style.

CSS (save the CSS file as style-print.css)
#header is id for your header (div or table)

1
2
3
#header {
   display: none;
}

In HTML add this line

1
<link rel="stylesheet" href="style-print.css" type="text/css" media="print" />

Include google-hosted jquery

If you are lazy to copy and paste the jquery file to your development folder for example when testing something simple, you can always use jquery hosted by google. To include it is very simple, you just include this script on the top and you’re done.

1
2
3
4
<script src="http://www.google.com/jsapi"></script>
<script>
   google.load("jquery", "1.3");
</script>

You are ready to use the jquery. Yahooo.. ups.. Goooooglee!!

Alternative control statement for PHP

PHP offers alternative for control statements just for developers who did not want to see lot of curly brackets ‘{ }’ in their code.

<?php
if($access):
//and close it with
endif;
?>

It’s also applicable to else statement:

<?php
if($access):
//code here
else:
//code here
endif;
?>

This alternative method can also be used for foreach.

BlockUI – a whole web blocker

If we use AJAX to submit the form, sometime it takes time for server to respond to the AJAX request and in this period of time user might move around and click another action. Solution for this problem is; we block the whole web until the request is completed. There is one jQuery plugin for developers to be able doing this called jQuery BlockUI.

The package can be download right here:

http://malsup.com/jquery/block/

The implementation is pretty simple. All we need to include the javascript file and called its function anytime. As for AJAX form request, you can call the $.blockUI(); function before you made a request for example:

$.blockUI(); //start block UI
$.post('ajax-file-callback.php',data,function(data){
  $.unblockUI();
});

Replace line break with

This code is used to replace line break saved in database to
in html display

$astring = str_replace(chr(13) . chr(10), "", $astring);

Updated: Actually there is a built in function for this as follow

echo nl2br($astring);