-
Notifications
You must be signed in to change notification settings - Fork 0
/
pingmelive.lib.php
1 lines (1 loc) · 2.04 KB
/
pingmelive.lib.php
1
<?php Class pingMeLive{public function __construct($apiKey,$projectID,$errorLogStatus=true,$errorTitle="PHP Errors"){$this->apiKey=$apiKey;$this->projectID=$projectID;$this->errorLogStatus=$errorLogStatus;$this->errorTitle=$errorTitle;$this->eventDateTime=date('Y-m-d H:i:s');if($errorLogStatus==true){$this->startErrorPings();}}public function pingError($errno,$errstr,$errfile,$errline){$eventDateTime=$this->eventDateTime;$groupTitle=$this->errorTitle;$requestUrl=(isset($_SERVER['HTTPS'])?"https":"http")."://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";$userIP=$_SERVER['REMOTE_ADDR'];$messageText="Error:[$errno] $errstr";$detailedText=array("Error No"=>$errno,"Error Description"=>$errstr,"Line No"=>$errline,"File Location"=>$errfile,"Event DateTime"=>$eventDateTime,"RequestUrl"=>$requestUrl,"User IP"=>$userIP);$this->sendData($groupTitle,$messageText,json_encode($detailedText));}public function sendData($groupTitle,$messageText,$detailedText=""){$eventDateTime=$this->eventDateTime;$url="https://pingmelive.com/event/push";$apiKey=$this->apiKey;$projectID=$this->projectID;$bodyRequest=array("groupTitle"=>$groupTitle,"message"=>$messageText,"detailedText"=>$detailedText,"eventDateTime"=>$eventDateTime);$header="-H 'Content-type: application/json' -H 'apiKey:$apiKey' -H 'projectID:$projectID'";$curlRequest="curl $header -X 'POST' -d '".json_encode($bodyRequest)."' --url '".$url."' > /dev/null 2>&1 &";exec($curlRequest);return true;}public function simpleEvent($groupTitle,$messageText){$this->sendData($groupTitle,$messageText);return true;}public function startErrorPings(){set_error_handler(function($errno,$errstr,$errfile,$errline){$this->pingError($errno,$errstr,$errfile,$errline);return true;},E_ALL);register_shutdown_function(function(){$last_error=error_get_last();if($last_error['type']===E_ERROR){$this->pingError(E_ERROR,$last_error['message'],$last_error['file'],$last_error['line']);}return true;});return true;}public function detailedEvent($groupTitle,$messageText,$detailedText){$this->sendData($groupTitle,$messageText,$detailedText);return true;}} ?>