顯示具有 php 標籤的文章。 顯示所有文章
顯示具有 php 標籤的文章。 顯示所有文章

2018年11月1日

Grocery_crud CKEditor 客製化功能選單

Grocerycrud CKEditor客製化功能選單,留下常用的功能選單

/assets/grocery_crud/js/jquery_plusins/config/jquery.ckeditor.config.js
$(function(){
$( 'textarea.texteditor' ).ckeditor({toolbar:'MyBasic'});
$( 'textarea.mini-texteditor' ).ckeditor({toolbar:'MyBasic',width:700});
});

/assets/grocery_crud/texteditor/config.js
CKEDITOR.editorConfig = function( config )
{
CKEDITOR.config.toolbar_MyBasic =
[
[ 'Source','ShowBlocks','Maximize','Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo','Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat'],
'/',
['Image','Table','HorizontalRule','Link','Unlink','Anchor'],
'/',
['Styles','Format','Font','FontSize','TextColor','BGColor' ]
];
};

2017年12月29日

PHP CURL 設定筆記

PHP CURL 設定筆記

GET

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://somewhere/?var=val");
//curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接輸出
$result = curl_exec($ch);
curl_close($ch);


POST

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://somewhere/");
curl_setopt($ch, CURL_POST, true);
curl_setopt($ch, CURL_POSTFIELDS, http_build_query( array() ) );
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接輸出
$result = curl_exec($ch);
curl_close($ch);

2014年8月13日

Apache,PHP調校設定



編輯 /etc/apache2/apache2.conf or httpd.conf
加上 EnableSendfile Off
伺服器沒支援的話,要關掉,否則無法正常顯示圖片!

編輯 /etc/apache2/apache2.conf
加上 ServerName 127.0.0.1



編輯C:\WINDOWS\php.ini

打開output_buffering
output_buffering = Off -> output_buffering = On

打開PDO for mysql
extension=php_pdo_mysql.dll

記憶體限制調大
memory_limit = 8M 改為 32M

設定時區
date.timezone = "Asia/Taipei"

2014年7月21日

Windows下於tomcat內架設JavaBridge


下載tomcat可攜版,假設tomcat放在c:\tomcat下

1.設定tomcat可正常執行

設定系統環境變數
CATALINA_HOME=c:\tomcat
Path=......;%CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar

編輯tomcat/bin/startup.bat加入以下
set "JAVA_HOME=C:\Program Files (x86)\Java\jre7"
set "CATALINA_HOME=c:\tomcat"

2.複製JavaBridge.war至tomcat/weapps/下,移除webapps下其他目錄


tomcat會建立tomcat/webapps/JabaBridge目錄,此時JavaBridge.war可移除

從C:\tomcat\Webapps\JavaBridge\WEB-INF\lib複製JavaBridge.jar, php-servlet.jar and php-script.jar
到C:\tomcat\lib\


3.編輯web.xml加入以下

<listener><listener-class>php.java.servlet.ContextLoaderListener</listener-class></listener>
<servlet><servlet-name>PhpJavaServlet</servlet-name><servlet-class>php.java.servlet.PhpJavaServlet</servlet-class>
</servlet>
<servlet><servlet-name>PhpCGIServlet</servlet-name><servlet-class>php.java.servlet.fastcgi.FastCGIServlet</servlet-class>
<init-param><param-name>prefer_system_php_exec</param-name><param-value>On</param-value></init-param>
<init-param><param-name>php_include_java</param-name><param-value>Off</param-value></init-param>
</servlet>
<servlet-mapping><servlet-name>PhpJavaServlet</servlet-name><url-pattern>*.phpjavabridge</url-pattern> </servlet-mapping>
<servlet-mapping><servlet-name>PhpCGIServlet</servlet-name><url-pattern>*.php</url-pattern></servlet-mapping>

4.測試

執行tomcat/bin/startup.bat來啟動tomcat

於apache下之javatest.php
require_once("http://127.0.0.1:8080/JavaBridge/java/Java.inc");
$j = new Java('java.lang.system');
echo $j->getProperty('java.version');

2011年8月31日

CKEditor,CKFinder安裝筆記

下載ckeditor,ckfinder
網站根目錄建立ck,ckimg資料夾
將ckeditor,ckfinder複製到ck資料夾
ckimg預計拿來放上傳的圖片

設定ckfinder/config.php

最重要的是設定下列二行:
$baseUrl = 'http://'.$_SERVER['HTTP_HOST'].'/ckimg/';
$baseDir = str_replace('/ck/ckfinder/config.php', '', str_replace('\\', '/', __FILE__))."/ckimg/";

test.html

(script type="text/javascript" src="(base_url)ckeditor.js")(/script)
(script type="text/javascript" src="(base_url)ckfinder.js")(/script)

(textarea id='cardpic' name='cardpic' type='text')(/textarea)

2011年7月26日

LAMP安裝備忘(Linux Apache Mysql Php) on Debian

apt-get install apache2 mysql-server php5 php5-mysql

apache2設定

編輯 /etc/apache2/apache2.conf or httpd.conf
加上 EnableSendfile Off

編輯 /etc/apache2/apache2.conf
加上 ServerName 127.0.0.1

mysql設定

編輯 /etc/mysql/my.cnf
修改 bind-address = 127.0.0.1 => #bind-address = 127.0.0.1
[mysqld]之下加入(跟效能調校有關)
max_connect_errors = 1844674407370954751
connect_timeout = 20
skip-name-resolve
slave_net_timeout = 30


建帳號、新增使用者
mysql> grant all privileges on *.* to 'vega'@'localhost' identified by 'vega' with grant option;

mysql> grant all privileges on *.* to 'vega'@'%' identified by 'vega' with grant option;

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON dbname.* to 'vega'@'%' identified by 'vega';

更新權限
mysql>flush privileges;

改密碼
mysql>update user set Password=PASSWORD('new_pass') where user='root';

MYSQL 5.7版已無Password欄位
update user set authentication_string=password('1111') where user='root';

看權限
SHOW GRANTS FOR 'vega'@'%';

2011年5月11日

PHP編碼轉碼備忘

較嚴格
htmlentities($str);
html_entity_decode($str);

相容性較高
htmlspecialchars($str, ENTQUOTES);
htmlspecialchars_decode()

1.ENT_COMPAT(只編雙引號)
2.ENT_QUOTES(單+雙)
3.ENT_NOQUOTES(不編引號)

rawurlencode();(空白->%20)
依RFC1738將URL編碼

urlencode URL編碼字串,非字母除了-_.之外

2011年5月2日

$HTTP_GET_VARS,$HTTP_POST_VARS無法使用

安裝完APACHE+PHP網頁發現網頁部份功能不能使用
發現是$HTTP_XXX_VARS等變數無法使用,這是PHP4之前版本的寫法

$HTTP_SERVER_VARS

$HTTP_POST_VARS
$HTTP_GET_VARS


如要能夠使用舊寫法
編輯php.ini設定
register_globals = On
register_long_arrays = On
 
不過打開後會降低PHP效能
另一種方式是通通改成新的寫法
$_SERVER
$_GET
$_POST
即可

2010年12月17日

Java-Bridge Windows安裝筆記

1.安裝Appserv
2.安裝JDK
3.到這邊下載JavaBridge
4.解壓縮並找到JavaBridge.war檔
5.再把JavaBridge.war解壓到JavaBridge目錄

把整個目錄放到 C:\AppServ\JavaBridge

修改php.ini
include_path = ".;c:\php\includes;c:\AppServ\JavaBridge;"

重新啟動apache2

再來到命令列
cd AppServ\JavaBridge\WEB-INF\lib
java -jar JavaBridge.jar SERVLET:8080
執行畫面如下:











測試
jtest.php
=====================
require_once("java/Java.inc");
$j = new Java('java.lang.system')
echo $j->getProperty('java.version');
=====================

2010年11月11日

PHP 的類別, 繼承, 抽象類別, 介面

我對PHP CLASS的認識, 記錄一下.

//public 可隨意存取
//private 僅對本身內部開放, 不能繼承
//protected 僅對本身內部開放, 可以繼承

//類別
class myclass
{
public $var1='1';
private $var2='2';
protected $var3='3';

//建構函式
//物件建立時會行此函數如有參數,建立物件時需給參數....new myclass($v1,$v2)
function __construct()
{
//物件產生時要執行的程式碼
//如:設定初始值、預設值、連接資料庫.
// $this->var1 = $v1;
//$this->var2 = $v2;
echo "物件產生";
}

//解構函式
//物件消失前會執行此函數
function __destruct()
{
//物件銷毀前要執行的動作
//如:關閉資料庫.
echo "物件消失";
}
//clone函數:物件被複製時會執行此函數
function __clone()
{
//
}
//類別的方法
public function myfun( $par1, $par2 )
{
$this->var1+$this->var2+$this->var3;
return $par1+$par2;
}
public function a()
{
echo "aa";
$this->var1='222aa';
}
}
//物件複製
$cloneobj = clone $obj;

//繼承
class extclass1 extends myclass//可以為空
{}
class extclass2 extends myclass
{
public function a()
{
parent::a(); //呼叫父類別被覆蓋的方法.
echo $this->var1;
}
public $other_var1; //新增父類別沒有的變數
function other_fun () //新增父類別沒有的方法
{
//
}
function myfun() //改寫父類別已有的方法
{
//
}

}

//抽象類別,抽象方法
abstract class abstract_class_name //**只要裡面有抽象的方法,這個類別就要宣告成抽象類別(abstract class)
{
public $a;

//抽象方法
abstract function abstract_function1();//無{}內的內容,直接加分號
abstract function abstract_function2();//無{}內的內容,直接加分號

//一般的方法
function myfunction()
{
//
}
}
//繼承抽象的類別
class myclass extends abstract_class_name
{
public function abstract_function1() //必需重寫抽象方法
{
//
}
public function abstract_function2() //必需重寫抽象方法
{
//
}
}
//介面
interface interface_name
{
//介面中不可以宣告屬性(public $var;)
public function interface_function1();//介面中所有成員都必需是public
public function interface_function2();//介面中所有成員都必需是public
}
//實現介面
//class 類別名 implements 介面名
class myclass implements interface_name
{
public $any_var;
public function interface_function1()
{}
public function interface_function2()
{}
}

2010年10月15日

Debian Java-Bridge精簡安裝(免裝Tomcat)

1. 安裝JDK, 請參考安裝Java JDK
2. 下載編譯php-java-bridge

apt-get install php5-dev re2c make php-pear

取得  php-java-bridge_5.5.4.1.tar.gz

#tar zxvf php-java-bridge_5.5.4.1.tar.gz
#mv php-java-bridge_5.5.4.1 /usr/local/
#cd /usr/local/php-java-bridge_5.5.4.1
#phpize
#./configure --disable-backend --with-java=/usr/local/jdk
#make install  (/usr/lib/php5/20060613+lfs/java.so)(php-java-bridge-5.5.4.1/modules/java.so)
#cp -r php-java-bridge-5.5.4.1/server/META-INF/java /usr/share/php/  (給php用的JAVA Library)

3.取得JavaBridge.jar放到  /usr/lib/php5/20060613+lfs/JavaBridge.jar
4.設定PHP, 編輯java.ini
#vi /etc/php5/conf.d/java.ini

extension=java.so;;php_java.dll on windows
[java]
java.class.path = /usr/lib/php5/20060613+lfs/
java.library.path = /usr/lib/php5/20060613+lfs/:/usr/local/jdk/bin/
java.java_home = /usr/local/jdk/bin/
java.java = /usr/local/jdk/bin/java
java.log_level = 2

5.重啟apache2
#/etc/init.d/apache2 restart

6.檢查是否已載入
php -m
7.測試檔test.php

require_once("java/JavaBridge.inc");

require_once("java/JavaProxy.inc");
java_require("/path/to/jar/file/directory");

$str = new java("java.lang.String", "hello");
echo $str;
?>

2010年8月21日

PHP取得目前檔案絕對目錄

EX: /var/www/include/abc.php


取得檔案名稱與路徑 /var/www/include/abc.php
__FILE__;


取得檔案名稱 test.php
basename(__FILE__);


取得檔案名稱(不含附檔名) test
basename(__FILE__, '.php');


取得此目錄前的完整路徑 /var/www/include
dirname(__FILE__);


取得上層目錄前的完整路徑 /var/www
dirname(dirname(__FILE__));


http://www.mydomain.com/page/to/my/index.php?par=1



$_SERVER['SERVER_PROTOCOL'].'://'. $_SERVER['HTTP_HOST']. $_SERVER['PHP_SELF'].'?'. $_SERVER['QUERY_STRING']

http://www.mydomain.com/page/to/my/index.php?par=1


$_SERVER['SERVER_PROTOCOL'].'://'. $_SERVER['HTTP_HOST']. $_SERVER['REQUEST_URI']

2010年7月23日

簡易購物車做法

使用三個陣列記錄購物車內容

$cart[id] 記錄商品ID
$cart[quantity] 記錄商品數量
$cart[price] 記錄商品價格

ID就是商品唯一識別碼
數量跟價格是方便最後結帳統計使用

再來就是幾個有用的函數

in_array("字串",$arr);
判斷是否在陣列內

$key = array_search("字串",$arr);
找到字串在陣列人的KEY值.

$cart[id] = something;
將something加入陣列內

unset ($arr [$key])
清空$arr[$key]的值,該位置還在.

$arr = array_values($arr);
將清空後的位置移除.

count($cart[id)
算出陣列個數

以上,基本購物車功能(加入、改數量、移除)都可以做出來了.

2010年6月17日

PHP錯誤訊息 Allowed memory size of xxx bytes exhausted

執行PHP出現以下錯誤訊息
Allowed memory size of xxx bytes exhausted ......

修改php.ini
找到memory_limit = 8M 改為 32M

2010年5月26日

PHP日期函數

date('Y-m-d') //0000-00-00
date('H:i:s') //00:00:00

2010年5月11日

PHP之PDO於MYSQL之[新增][修改][刪除]

[新增]

$sql = "INSERT INTO table_name(col1,col2,......coln) VALUES($var1,$var2,......$varn)";
$result = $db->exec($sql);

[修改]

$sql = "UPDATE dbname SET col1='$var1',col2='$var2',......coln='$varn' WHERE ......";
$result = $db->prepare($sql);
$result->execute();

[刪除]

$sql = "DELETE FROM dbname WHERE id=".$id."";
$result = $db->exec($sql);

[$db->prepare另外用法]

$sql = "UPDATE table_name SET col1=? WHERE col2=? AND col3=?";
$result = $db->prepare($sql);
$result->execute(array($var1,$var2,$var3));

2010年2月19日

Appserv安裝備忘

MYSQL
1.建帳號、新增使用者
mysql> grant all privileges on *.* to 'vega'@'localhost' identified by 'vega' with grant option;
mysql> grant all privileges on *.* to 'vega'@'%' identified by 'vega' with grant option;

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON dbname.* to 'vega'@'%' identified by 'vega';


更新權限
mysql>flush privileges;

2.改密碼
mysql>update user set Password=PASSWORD('new_pass') where user='root';

MYSQL 5.7版已無Password欄位
update user set authentication_string=password('1111') where user='root';


web root:
C:\AppServ\www

modify C:\WINDOWS\php.ini
打開output_buffering
output_buffering = Off -> output_buffering = On
打開PDO for mysql
;extension=php_pdo_mysql.dll -> extension=php_pdo_mysql.dll

記憶體限制調大
memory_limit = 8M 改為 32M

設定時區
date.timezone = "Asia/Taipei"

關閉session warn
session.bug_compat_42 = 0

session.bug_compat_warn = 0