HTML Tutorial


 Forum HomeForum Home   FAQFAQ   SearchSearch   MemberlistMemberlist   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
RegisterRegister - Not registered yet? Got something to say? Join HTML Code Tutorial!
How to create a new ***.php file format in PHP scriptting?
Post new topic   Reply to topic    HTML Help Forum Index -> PHP
View previous topic :: View next topic  
Author Message
xdefconx



Joined: 22 Mar 2006
Posts: 38

PostPosted: Thu May 03, 2007 7:57 pm     How to create a new ***.php file format in PHP scriptting? Reply with quote

Hye all! I would like to know how PHP works to create other a new PHP file automatically on web folder? Ok my case scenario is like this. I already download a Article Manager 0.3 written in PHP language from:

http://www.interlogy.com/support/free-download/article_manager03.zip

With that script it help me to generate a news/article web page automatically on my web site. However that script will be generate on new ****.html file format. What i want is a new ***.php file format. Can someone help me to define on which one function should i look forward.

I already refer to http://php.net/fopen coz i think it maybe something related with fopen () funtion. I read there sound like that URL didnt tell me how to create other a new web file (html/php/etc) automatically. It just tell it to create a TXT file.However, here i give a full code wish someone can help here.

news.php
Code:

<html>
<body bgcolor=#f4efce>

<basefont size=2 face=arial>

<b>Add Article</b>
<?
        include ("template.inc");
        include ("config.php");
   
   $subject = $_POST[subject];
   $summary = $_POST[summary];
   $passwd = $_POST[passwd];
   $date = $_POST[date];
   $body = $_POST[body];
   $article_id = $_POST[article_id];

   #foreach($GLOBALS as $a => $b){   print "<li>$a => $b";}

   $summary_template = "t_summary.html";
   $article_template = "t_article.html";
   $max_summary = 5;

   function summary_page ($subject, $date, $summary, $article_id)
   {
      global $summary_template;
           $t = new Template();
           $t->set_file("SummaryPage", $summary_template);
      $article_url = "article_".$article_id.".html";
      $date = nl2br($date);
      $summary =  nl2br($summary);   
      $t->set_var( array(
            "subject" => $subject,
            "date"    => $date,
            "summary" => $summary,
            "article_url" => $article_url
            ));
      $t->parse("Summary", "SummaryPage");
      return $t->get_var("Summary");
   }

   function main_page ($subject, $date, $summary, $article_id, $body)
   {
      global $article_template;

                $t = new Template();
                $t->set_file("ArticlePage", $article_template);
                $article_url = "article_".$article_id.".html";
                $date = nl2br($date);
                $summary =  nl2br($summary);
                $body =  nl2br($body);
                $t->set_var( array(
                                "subject" => $subject,
                                "date"    => $date,
                                "summary" => $summary,
                                "body" => $body,
                                "article_url" => $article_url
                                ));
                $t->parse("Article", "ArticlePage");
                return $t->get_var("Article");
   }

   function add_article($filename, $news)
   {

      if(file_exists($filename)){
         $fh = fopen($filename, "r");
         $old_news = fread($fh, filesize($filename));
         fclose($fh);
      }

      /* TODO: Multipage articles
         preg_match_all("<!--ARTICLE PAGE=(\d*)-->", $old_news, $matches;
      
         if( count($matches[0]) >= $max_summary){
            $oldfilename = $filename.($matches[0][0]+1);
         }
      */

      $fh = fopen($filename, "w");
      $news = stripslashes($news);
      fwrite($fh, "\n<!--ARTICLE-->\n$news $old_news");
      fclose($fh);
   }

   if(strcmp($subject, "")){   
      if(!(strcmp($passwd, $password))){   
         add_article("article_summary.html", summary_page($subject, $date, $summary, $article_id));
         add_article("article_$article_id.html", main_page($subject, $date, $summary, $article_id, $body));
         echo "<p> <a href=article_$article_id.html>Article</a> has been added! <p>";
      }else{
         echo "<p><b> Password is wrong! </b>";
      }
   }
?>


<form action=news.php method=post>
<table border=0>
<tr> <td> (Password): </td><td> <input type=password name=passwd size=20> </td></tr>
<tr> <td> Subject: </td><td> <input type=text name=subject size=50> </td></tr>
<tr> <td> Article ID: </td><td> <input type=text name=article_id value=<? echo date("Y_m_j_is"); ?> size=30> </td></tr>
<tr> <td> Date/Author/etc: </td><td> <textarea name=date rows=2 cols=50 wrap=soft><? echo date("M j, Y\n"); ?>Author: </textarea> </td></tr>
<tr> <td> Summary: </td><td> <textarea name=summary rows=5 cols=50 wrap=soft></textarea> </td></tr>
<tr> <td> Body: </td><td> <textarea name=body rows=15 cols=50></textarea> </td></tr>
</table>
<input type=submit name=submit value=Add>
</form>


<p>


template.inc
Code:

<?php
/*
 * Session Management for PHP3
 *
 * (C) Copyright 1999-2000 NetUSE GmbH
 *                    Kristian Koehntopp
 *
 * $Id: template.inc,v 1.5 2000/07/12 18:22:35 kk Exp $
 *
 */

class Template {
  var $classname = "Template";

  /* if set, echo assignments */
  var $debug     = false;

  /* $file[handle] = "filename"; */
  var $file  = array();

  /* relative filenames are relative to this pathname */
  var $root   = "";

  /* $varkeys[key] = "key"; $varvals[key] = "value"; */
  var $varkeys = array();
  var $varvals = array();

  /* "remove"  => remove undefined variables
   * "comment" => replace undefined variables with comments
   * "keep"    => keep undefined variables
   */
  var $unknowns = "remove";
 
  /* "yes" => halt, "report" => report error, continue, "no" => ignore error quietly */
  var $halt_on_error  = "yes";
 
  /* last error message is retained here */
  var $last_error     = "";


  /***************************************************************************/
  /* public: Constructor.
   * root:     template directory.
   * unknowns: how to handle unknown variables.
   */
  function Template($root = ".", $unknowns = "remove") {
    $this->set_root($root);
    $this->set_unknowns($unknowns);
  }

  /* public: setroot(pathname $root)
   * root:   new template directory.
   */ 
  function set_root($root) {
    if (!is_dir($root)) {
      $this->halt("set_root: $root is not a directory.");
      return false;
    }
   
    $this->root = $root;
    return true;
  }

  /* public: set_unknowns(enum $unknowns)
   * unknowns: "remove", "comment", "keep"
   *
   */
  function set_unknowns($unknowns = "keep") {
    $this->unknowns = $unknowns;
  }

  /* public: set_file(array $filelist)
   * filelist: array of handle, filename pairs.
   *
   * public: set_file(string $handle, string $filename)
   * handle: handle for a filename,
   * filename: name of template file
   */
  function set_file($handle, $filename = "") {
    if (!is_array($handle)) {
      if ($filename == "") {
        $this->halt("set_file: For handle $handle filename is empty.");
        return false;
      }
      $this->file[$handle] = $this->filename($filename);
    } else {
      reset($handle);
      while(list($h, $f) = each($handle)) {
        $this->file[$h] = $this->filename($f);
      }
    }
  }

  /* public: set_block(string $parent, string $handle, string $name = "")
   * extract the template $handle from $parent,
   * place variable {$name} instead.
   */
  function set_block($parent, $handle, $name = "") {
    if (!$this->loadfile($parent)) {
      $this->halt("subst: unable to load $parent.");
      return false;
    }
    if ($name == "")
      $name = $handle;

    $str = $this->get_var($parent);
    $reg = "/<!--\s+BEGIN $handle\s+-->(.*)\n\s*<!--\s+END $handle\s+-->/sm";
    preg_match_all($reg, $str, $m);
    $str = preg_replace($reg, "{" . "$name}", $str);
    $this->set_var($handle, $m[1][0]);
    $this->set_var($parent, $str);
  }
 
  /* public: set_var(array $values)
   * values: array of variable name, value pairs.
   *
   * public: set_var(string $varname, string $value)
   * varname: name of a variable that is to be defined
   * value:   value of that variable
   */
  function set_var($varname, $value = "") {
    if (!is_array($varname)) {
      if (!empty($varname))
        if ($this->debug) print "scalar: set *$varname* to *$value*<br>\n";
        $this->varkeys[$varname] = "/".$this->varname($varname)."/";
        $this->varvals[$varname] = $value;
    } else {
      reset($varname);
      while(list($k, $v) = each($varname)) {
        if (!empty($k))
          if ($this->debug) print "array: set *$k* to *$v*<br>\n";
          $this->varkeys[$k] = "/".$this->varname($k)."/";
          $this->varvals[$k] = $v;
      }
    }
  }

  /* public: subst(string $handle)
   * handle: handle of template where variables are to be substituted.
   */
  function subst($handle) {
    if (!$this->loadfile($handle)) {
      $this->halt("subst: unable to load $handle.");
      return false;
    }

    $str = $this->get_var($handle);
    $str = @preg_replace($this->varkeys, $this->varvals, $str);
    return $str;
  }
 
  /* public: psubst(string $handle)
   * handle: handle of template where variables are to be substituted.
   */
  function psubst($handle) {
    print $this->subst($handle);
   
    return false;
  }

  /* public: parse(string $target, string $handle, boolean append)
   * public: parse(string $target, array  $handle, boolean append)
   * target: handle of variable to generate
   * handle: handle of template to substitute
   * append: append to target handle
   */
  function parse($target, $handle, $append = false) {
    if (!is_array($handle)) {
      $str = $this->subst($handle);
      if ($append) {
        $this->set_var($target, $this->get_var($target) . $str);
      } else {
        $this->set_var($target, $str);
      }
    } else {
      reset($handle);
      while(list($i, $h) = each($handle)) {
        $str = $this->subst($h);
        $this->set_var($target, $str);
      }
    }
   
    return $str;
  }
 
  function pparse($target, $handle, $append = false) {
    print $this->parse($target, $handle, $append);
    return false;
  }
 
  /* public: get_vars()
   */
  function get_vars() {
    reset($this->varkeys);
    while(list($k, $v) = each($this->varkeys)) {
      $result[$k] = $this->varvals[$k];
    }
   
    return $result;
  }
 
  /* public: get_var(string varname)
   * varname: name of variable.
   *
   * public: get_var(array varname)
   * varname: array of variable names
   */
  function get_var($varname) {
    if (!is_array($varname)) {
      return $this->varvals[$varname];
    } else {
      reset($varname);
      while(list($k, $v) = each($varname)) {
        $result[$k] = $this->varvals[$k];
      }
     
      return $result;
    }
  }
 
  /* public: get_undefined($handle)
   * handle: handle of a template.
   */
  function get_undefined($handle) {
    if (!$this->loadfile($handle)) {
      $this->halt("get_undefined: unable to load $handle.");
      return false;
    }
   
    preg_match_all("/\{([^}]+)\}/", $this->get_var($handle), $m);
    $m = $m[1];
    if (!is_array($m))
      return false;

    reset($m);
    while(list($k, $v) = each($m)) {
      if (!isset($this->varkeys[$v]))
        $result[$v] = $v;
    }
   
    if (count($result))
      return $result;
    else
      return false;
  }

  /* public: finish(string $str)
   * str: string to finish.
   */
  function finish($str) {
    switch ($this->unknowns) {
      case "keep":
      break;
     
      case "remove":
        $str = preg_replace('/{[^ \t\r\n}]+}/', "", $str);
      break;

      case "comment":
        $str = preg_replace('/{([^ \t\r\n}]+)}/', "<!-- Template $handle: Variable \\1 undefined -->", $str);
      break;
    }
   
    return $str;
  }

  /* public: p(string $varname)
   * varname: name of variable to print.
   */
  function p($varname) {
    print $this->finish($this->get_var($varname));
  }

 /* Added by Aytekin
  function pvalue($varname) {
    return $this->finish($this->get_var($varname));
  }


  function get($varname) {
    return $this->finish($this->get_var($varname));
  }
   
  /***************************************************************************/
  /* private: filename($filename)
   * filename: name to be completed.
   */
  function filename($filename) {
    if (substr($filename, 0, 1) != "/") {
      $filename = $this->root."/".$filename;
    }
   
    if (!file_exists($filename))
      $this->halt("filename: file $filename does not exist.");

    return $filename;
  }
 
  /* private: varname($varname)
   * varname: name of a replacement variable to be protected.
   */
  function varname($varname) {
    return preg_quote("{".$varname."}");
  }

  /* private: loadfile(string $handle)
   * handle:  load file defined by handle, if it is not loaded yet.
   */
  function loadfile($handle) {
    if (isset($this->varkeys[$handle]) and !empty($this->varvals[$handle]))
      return true;

    if (!isset($this->file[$handle])) {
      $this->halt("loadfile: $handle is not a valid handle.");
      return false;
    }
    $filename = $this->file[$handle];

    $str = implode("", @file($filename));
    if (empty($str)) {
      $this->halt("loadfile: While loading $handle, $filename does not exist or is empty.");
      return false;
    }

    $this->set_var($handle, $str);
   
    return true;
  }

  /***************************************************************************/
  /* public: halt(string $msg)
   * msg:    error message to show.
   */
  function halt($msg) {
    $this->last_error = $msg;
   
    if ($this->halt_on_error != "no")
      $this->haltmsg($msg);
   
    if ($this->halt_on_error == "yes")
      die("<b>Halted.</b>");
   
    return false;
  }
 
  /* public, override: haltmsg($msg)
   * msg: error message to show.
   */
  function haltmsg($msg) {
    printf("<b>Template Error:</b> %s<br>\n", $msg);
  }
}
?>



What i want is i want that script generate a PHP file format and nop HTML format.HUhuhuh. Thanxs
flann



Joined: 04 May 2007
Posts: 14

PostPosted: Fri May 04, 2007 9:35 am     Reply with quote

you're on the right track with fopen(). Instead of saving it as a .txt file, save it as a .php file and see if it works. I don't see why it wouldn't, but i've never done it myself.
xdefconx



Joined: 22 Mar 2006
Posts: 38

PostPosted: Fri May 04, 2007 9:41 am     Reply with quote

Hye flann, thanxs for ur reply. currently i still looking a solution for my question huhuhuhu

flann wrote:
you're on the right track with fopen(). Instead of saving it as a .txt file, save it as a .php file and see if it works. I don't see why it wouldn't, but i've never done it myself.
Display posts from previous:   
Post new topic   Reply to topic    HTML Help Forum Index -> PHP All times are GMT - 8 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
HTML Help Archive
Powered by phpBB © 2001, 2005 phpBB Group
HTML Help topic RSS feed 

 
HOSTING / DESIGN
MAKE MONEY

Home
  |   Tutorials   |   Forum   |   Quick List   |   Link Directory   |   About
Copyright ©1997-2002 Idocs and ©2002-2007 HTML Code Tutorial