setup¶
the NON Thread safe (nts) php does not support apache and you have to install thread safe versions
install¶
php.ini-development to php.ini and change: display_errors = on log_errors = on error_log = c:\log\php_errors.log SMTP = mail.svr.com extension=curl extension=gd2 extension=mbstring extension=pdo_mysql
print_r() displays information about a variable in a way that's readable by humans.
var_dump() displays structured information about one or more expressions that includes its type and value.
//to error_log
error_log( print_r( $object, true ) );
function error_log_var_dump( $object=null ){
ob_start(); // start buffer capture
var_dump( $object ); // dump the values
$contents = ob_get_contents(); // put the buffer into a variable
ob_end_clean(); // end capture
error_log( $contents ); // log contents of the result of var_dump( $object )
}
error_log_var_dump( $object );
install package¶
npm i --save puppeteer
install to folder: "C:\Program Files\nodejs\node_modules" npm install --prefix "C:\Program Files\nodejs" puppeteer --save
get data from web js in php:\ https://developers.google.com/web/tools/puppeteer/articles/ssr
puppeteer-and-chrome-headless:\ https://medium.com/@e_mad_ehsan/getting-started-with-puppeteer-and-chrome-headless-for-web-scrapping-6bf5979dee3e
https://dev.to/alanmbarr/scraping-html-with-php-node-and-puppeteer-10m2
debug in VS code¶
- download xdebug based on php version: https://xdebug.org/download
- copy the dll to: C:\php\ext
- update php.ini, add:
- in VS code, install extension PHP Debug
- in VS code, debug -> add config file
- run in debug mode
set local log date¶
date_default_timezone_set('Australia/Brisbane');
set memory limit¶
ini_set('memory_limit', '-1');
log4php.xml¶
<?xml version="1.0" encoding="UTF-8"?>
<log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/">
<appender name="myConsoleAppender" class="LoggerAppenderConsole">
<layout class="LoggerLayoutPattern">
<param name="conversionPattern" value="%-5level - %message%n" />
</layout>
</appender>
<appender name="myFileAppender" class="LoggerAppenderFile" threshold="WARN">
<layout class="LoggerLayoutPattern">
<param name="conversionPattern" value="%date{Y-m-d H:i:s} %-5level - Line: %-5line File: %file%n %-25logger %message%n" />
</layout>
<param name="file" value="myphp.log" />
</appender>
<appender name="myDBAppender" class="LoggerAppenderPDO" threshold="WARN">
<layout class="LoggerLayoutPattern">
<param name="conversionPattern" value="%date{Y-m-d H:i:s.u},%logger,%level,%message,%pid,%file,%line" />
</layout>
<param name="dsn" value="mysql:host=localhost;dbname=mydb;port=3306"/>
<param name="user" value="usr" />
<param name="password" value="pwd" />
<param name="table" value="log_warn" />
<param name="insertPattern" value="%date{Y-m-d H:i:s.u},%logger,%level,%message,%pid,%file,%line" />
</appender>
<root>
<level value="DEBUG" />
<appender_ref ref="myFileAppender" />
<appender_ref ref="myConsoleAppender" />
<appender_ref ref="myDBAppender" />
</root>
</log4php:configuration>