Jump to content

getmizanur

New Members
  • Posts

    9
  • Joined

  • Last visited

Posts posted by getmizanur

  1. elloo,

     

    i have php script that works fine on a dev server however on staging server it is a blank page. i have set 'error_reporting(E_ALL) ' and ini_set('dsiplay_errors', 1) however only information i get is some notices and no fatal errors.

     

    i'm aware that php stops executing if there is a fatal error (and appears as blank screen), is there some sort of directive in 'php.ini' which stop php from executing when there are notices. 

     

    thanks in advanced

  2. elloo,

     

    i saw this code today and it struck some interest in me 'cause i had not seen this style of coding in foreach statement before.

     

    class Test
      {
              public $testString = "value";
              public $testString1 = "value1";
              private $testString2 = "value2";
      
              public function &do_something()
              {   
                      eval('$rtn=new ' . get_class($this) . ';');
    
                      foreach($this as $prop => $val)
                      {   
                              $rtn->$prop=$val;
                      }   
      
                      return $rtn;
              }   
      }
    $obj = new Test();
    print_r($obj->do_something());
    

     

    i'm tiny bit baffled by the line

     

    $rtn->$prop=$val

     

    what does the function &do_somthing() do?

     

    many thanks in advance

  3. elloo,

     

    i had a php test today and had to find what was wrong with the following regex

     

    preg_match('/^(?:ftp://)?([^/]+)@i');

     

    my answer

     

    preg_match('/^(?:ftp:\/\/)?([^/]+@/i');

     

    can anyone tell me if i'm correct or not.

     

    and just for understanding, can anyone explain to me what this means (?:ftp://)?([^/]+)

  4. elloo,

     

    I'm new to XML and XSLT and I've thought to learn more about it by trying do something basic. In this exercise I try to query the company.xml file using xpath and trying to save the result in result.xml.

     

    When I run my code I get this in result.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <annual>
    <company>
    	<turnover id="2001">100,000</turnover>
    	<turnover id="2002">200,000</turnover>
    	<turnover id="2003">300,000</turnover>
    	<employee id="001">Dicovery</employee>
    </company>
    <company>
    	<turnover id="2001">300,000</turnover>
    	<turnover id="2002">300,000</turnover>
    	<turnover id="2003">400,000</turnover>
    	<employee id="002">World</employee>
    </company>
    </annual>
    

     

    However my output should be this in result.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <annual>
    <company>
    	<turnover id="2001">100,000</turnover>
    	<turnover id="2002">200,000</turnover>
    	<turnover id="2003">300,000</turnover>
    	<employee id="001">Dicovery</employee>
    </company>
    </annual>
    

     

     

     

    ########Here Is My Code###############

    test.xsl

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
    <xsl:output doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
    <xsl:output doctype-public="-//W3//DTD XHTML 1.0 Strict//EN"/>
    
    <xsl:template match="annual">
    	<html>
    		<head>
    			<title><![CDATA[Annual Data & Report]]></title>
    		</head>
    		<body>
    			<ul>
    				<xsl:apply-templates select="company"/>
    			</ul>
    		</body>
    	</html>
    </xsl:template>
    
    <xsl:template match="company">
    	<li><xsl:apply-templates/></li>
    </xsl:template>
    </xsl:stylesheet>
    

     

    company.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <annual>
    <company>
    	<turnover id="2001">100,000</turnover>
    	<turnover id="2002">200,000</turnover>
    	<turnover id="2003">300,000</turnover>
    	<employee id="001">Dicovery</employee>
    </company>
    <company>
    	<turnover id="2001">300,000</turnover>
    	<turnover id="2002">300,000</turnover>
    	<turnover id="2003">400,000</turnover>
    	<employee id="002">World</employee>
    </company>
    </annual>
    

     

     

    <?php
    define("DEBUGGING", true);
    define("IS_WARNING_FATAL", true);
    define("SITE_GENERIC_ERROR_MESSAGE", "This site has taken a long break, I suggest you do the same");
    
    set_error_handler("fusionad_error_handler", E_ALL);
    
    function fusionad_error_handler($errNo, $errStr, $errFile, $errLine) {
    $backtrace = print_backtrace(2);
    $error_message = "\nERROR: $errNo \nTEXT: " . $errStr .
    		"\nLOCATION: " . $errFile . " Line " . $errLine . "\n" .
    		date("F j, Y, g:i:a") . "\nBacktrace:\n" . $backtrace . "\n\n";
    
    if(($errNo == E_WARNING && IS_WARNING_FATAL == false) || 
    		($errNo == E_NOTICE || $errNo == E_USER_NOTICE)) {
    	if(DEBUGGING == true) {
    		echo "<pre>" . $error_message . "</pre>";
    	}
    }else {
    	if(DEBUGGING == true)
    		echo "<pre>" . $error_message . "</pre>";
    	else{
    		echo "<pre>" . SITE_GENERIC_ERROR_MESSAGE . "</pre>";
    	}
    	exit;
    }
    }
    
    function print_backtrace($irrelevantTrace) {
    $s = '';
    $MAXSTRLEN = 64;
    $traceArr = debug_backtrace();
    for($i=0; $i<$irrelevantTrace; $i++) {
    	array_shift($traceArr);
    }
    foreach($traceArr as $arr) {
    	if(!empty($arr['class']))
    		$s = $arr['class'] . ".";
    	$args = array();
    	if(!empty($arr['args'])){
    		foreach($arr['args'] as $v) {
    			if(is_null($v)) {
    				$args[] = 'null';
    			}else if (is_array($v)) {
    				$args[] = "Array[" . sizeof($v) . "]";
    			}else if (is_object($v)) {
    				$args[] = "Object: " . get_class($v);
    			}else if (is_bool($v)) {
    				$args[] = ($v ? 'true' : 'false');
    			}else {
    				$v = (string)@$v;
    				$str = htmlspecialchars(substr($v, 0, $MAXSTRLEN));
    				if(strlen($v) > $MAXSTRLEN)
    					$str .= "...";
    				$args[] = "\"" . $str . "\"";
    			}
    		}
    	}
    	$s .= $arr['function'] . "(" . implode(", ", $args) . ")";
    	$Line = (isset($arr['line']) ? $arr['line'] : "unknown");
    	$File = (isset($arr['file']) ? $arr['file'] : "unknown");
    	$s .= sprintf(" # line %4d, file: %s", $Line, $File);
    	$s .= "\n";
    }
    return $s;
    }
    
    class Test {
    /* private members */
    private $mXmlDoc;
    private $mXpath;
    private $mXsltPorc;
    private $mXml;
    private $mXslt;
    private $mHtml;
    
    /* public members */
    public $mOutput;
    
    /* default constructor */
    public function __construct($xml) {
    	$this->mXmlDoc = new DomDocument();
    	if(!($this->mXmlDoc->load($xml))) {
    		trigger_error();
    	}
    }
    
    /**
     * Function sets the XML output file name
     *
     * @param $xml - filename of the output file
     */
    public function output($xml) {
    	if(isset($xml) && strlen($xml) > 0) {
    		$this->mOutput = $xml;
    	}else{
    		trigger_error();
    	}
    }
    
    /**
     * Function prints XML data
     *
     * @ param $xml - filename string
     */
    public function xmlQuery($xpath) {
    	$this->mXpath = new DomXPath($this->mXmlDoc);		
    	$node_list = $this->mXpath->query($xpath, $this->mXmlDoc);
    
    	foreach($node_list as $node) {
    		echo "<pre>" . $this->mXmlDoc->saveXML($node) . "</pre>";
    	}
    
    	$this->mXmlDoc->save($this->mOutput);
    }
    
    /**
     * Function convert XML to HTML
     *
     * @param $xml - xml filename
     * @param $xsl - xsl filename
     */
    public function xml2html($xml, $xsl) {
    	// create xslt processor
    	$this->mXsltProc = new XsltProcessor();
    
    	$this->mXml = new DomDocument();
    	if(!($this->mXml->load($xml))) {
    		trigger_error();
    	}
    
    	$this->mXslt = new DomDocument();
    	$this->mXslt->load($xsl);
    
    	$this->mXsltProc->importStylesheet($this->mXslt);
    
    	if(!($this->mHtml = $this->mXsltProc->transformToXML($this->mXml))) {
    		trigger_error();
    	}
    
    	return $this->mHtml;
    }
    }
    $xmlProc = new Test("company.xml");
    $xmlProc->output("result.xml");
    $xmlProc->xmlQuery("/annual/company[employee[@id = '001']");
    echo $xmlProc->xml2html($xmlProc->mOutput, "test.xsl");
    

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.