The counterUrl() function presented in this page can be used to make a counter for the number of visits of your web site pages, with data (URL of each accessed page, number of visits) stored into a text file on server, in JSON format.
- The function returns an array with: ['p'=>page_address, 'v'=>nr_visits]. For other details and usage, see the comments in code.
- Click to select it.
/* PHP Script Counter Page Visits (PHP 5.4+) /from:
- Counter data is saved in JSON format into a text file on server
- Create a file on your server with the name added in $file_json, and permissions CHMOD 0755 (or 0777)

// HERE add the path and Name of the file where to save the counter data
$file_json = 'count_url.json';

//function to get and save a Counter for accessed pages
//receives the page address, and the address of the file where to save data (in json format)
//returns array with: ['p':page_address, 'v':nr_visits]
function counterUrl($p, $f){
  $url_c = ['p'=>$p, 'v'=>0];  //counter of current accessed page

  //if $file_json exists, gets is data into an array
  $ar_c = file_exists($f) ? json_decode(file_get_contents($f), true) :[];

  //if array $ar_c, traverse it, checks if current $pg_url is saved and increments its counter
    $nr = count($ar_c);
    for($i=0; $i<$nr; $i++){
      if($ar_c[$i]['p'] == $url_c['p']) {
        //store counter of current url, remove this item from array
        $url_c['v'] = $ar_c[$i]['v'];
        $ar_c = array_values($ar_c);

  //increment counter and save data in json file (show error message if unable to save)
  $ar_c[] = $url_c;
  if(!file_put_contents($f, json_encode($ar_c))) echo 'Unable to save data in: '. $f;
  return $url_c;

//Usage of the function, output the current page-address (without domain name) and number of visits
$url_c = counterUrl($_SERVER['REQUEST_URI'], $file_json);
echo 'Page: '. $url_c['p'] .' - Visits: '. $url_c['v'];
// Output: Page: /php-mysql/counter-page-visits_cs - Visits: 89

Daily Test with Code Example

Which tag is used to add lists into <ul> and <ol> elements?
<dt> <dd> <li>
Which value of the "display" property creates a block box for the content and ads a bullet marker?
block list-item inline-block
.some_class {
  display: list-item;
Which instruction converts a JavaScript object into a JSON string.
JSON.parse() JSON.stringify eval()
var obj = {
 "courses": ["php", "javascript", "ajax"]
var jsonstr = JSON.stringify(obj);
alert(jsonstr);    // {"courses":["php","javascript","ajax"]}
Indicate the PHP class used to work with HTML and XML content in PHP.
stdClass PDO DOMDocument
$strhtml = '<body><div id="dv1"></div></body>';
$dochtml = new DOMDocument();
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue;    //
Counter Page Visits

Last accessed pages

  1. Transparent Background, but not the text-content on it (1227)
  2. Ajax-PHP Chat Script (32266)
  3. Drag Racer V3 (15436)
  4. Insert, Select and Update NULL value in MySQL (17154)
  5. Adobe Flash Courses ActionScript 3 Tutorials (4707)

Popular pages this month

  1. Qwop (7896)
  2. Drag Racer V3 (5541)
  3. Bubbles3 (2160)
  4. List with All the Games (1834)
  5. Flash Games - Free online Games (1718)