PHP bmp 縮圖時產生 Call to undefined function imagecreatefrombmp() 解決方法

Fatal error: Call to undefined function imagecreatefrombmp()
其實PHP的確沒有 imagecreatefrombmp() 這個 function ,解決方法就是引入下列文件 ,就有imagecreatefrombmp()啦~解決~

點擊下載 imagecreatefrombmp.inc.php
https://docs.google.com/file/d/0B0WjmRBDYP2fZGl1U1dnMUpNdFk/edit?usp=sharing

但是輸出bmp的時候問題又來了,PHP bmp輸出的圖片無法開啟,
用magewbmp()這個function,很怪,
估狗了一下好像不只我有這種狀況,
有人是使用imagejpeg()來替代magewbmp()輸出,
沒辦法問題還是要解,我目前也是用者種方法,
若有高手剛好就知道有更好的解法請不吝與大家分享~謝謝

解決方法:
有人是使用imagejpeg()來替代magewbmp()輸出,
//magewbmp($image, $file ); //bmp輸出無法開啟
imagejpeg($image, $file , $quality );[……]

閱讀更多

PHP Imagetype 常數對應表

雖然我們常用的沒有那麼多~不過還是全部列出來囉~有需要的捧油請自行參考。

■藍色標記是我

1   IMAGETYPE_GIF
2   IMAGETYPE_JPEG
3   IMAGETYPE_PNG
4   IMAGETYPE_SWF
5   IMAGETYPE_PSD
6   IMAGETYPE_BMP 

7   IMAGETYPE_TIFF_II (intel byte order)
8   IMAGETYPE_TIFF_MM (motorola byte order)
9   IMAGETYPE_JPC
10 IMAGETYPE_JP2

11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM
17 IMAGETYPE_ICO 

原文:http://php.net/manual/en/function.exif-imagetype.php[……]

閱讀更多

過濾script…等可能引入惡意內容或惡意改變顯示布局的代碼

//過濾 <script 等可能引入惡意內容或惡意改變顯示布局的代碼,如果不需要插入flash等,還可以加入<object的過濾
function filter_danger_code($str)
{
 $farr = array(
 “/s /”, //過濾多余的空白
“/<(/?)(script|iframe|style|html|body|title|link|meta|object|?|%)([^>]*?)>/isU”, //過濾 <script 等可能引入惡意內容或惡意改變顯示布局的代碼,如果不需要插入flash等,還可以加入<object的過濾
“/(<[^>]*)on[a-zA-Z] s*=([^>]*>)/isU”, //過濾javascript的on事件

);
 $tarr = array(
 ” “,
 “<\1\2\3>”, //如果要直接清除不安全的標簽,這里可以留空
“\1\2”,
 );

 $str = preg_replace( $farr,$tarr,$str);
 return $str;
}[……]

閱讀更多

CKEditor整合JQuery的調配器Adapters

http://docs.ckeditor.com/#!/api/CKEDITOR_Adapters.jQuery
只支援4.2版

要引入 adapters/jquery.js

$(‘#editor_simple’).ckeditor()
$(‘#editor_simple’).ckeditor({
toolbar:’Basic’,
   width:’100%’,
   height:150
})[……]

閱讀更多

CKEditor4 自動清除內容標籤問題的解決方法

CKEditor4 自動清除內容標籤

在CKEditor中我們經由配置檔Config.js,可以依照自己的需求去自定編輯器的工具
如下圖的每一個小方塊,可依需求增加減少:

但在 CKEditor 中 CKEDITOR.editor.filter 會過濾掉一些沒開放功能的內容或程式碼

舉例來說:

上面這編輯器並沒有開放 iframe 這功能,但倘若我想要貼上 youtube 分享的嵌入HTML碼,而 youtube 的 HTML 就是由 <iframe> 方式嵌入的,youtube嵌入的Code如下:

<iframe width="560" height="315" src="//www.youtube.com/embed/9ATcxIOeDiY" frameborder="0" allowfullscreen></iframe>

我們開啟原始碼的編輯模式,貼上這一段code,做嵌入影片的動作後,在切換回所見即所得編輯方式的同時CKEDITOR.editor.filter就會過濾掉一些沒開放功能的內容,如上圖沒開放的iframe工具,如此我們因為沒有開放iframe工具就沒有辦法貼入youtube的iframe嵌入碼,其實這很合理,某些時候是一種很棒的限制內容功能,不過有些時候這或許並不是我們想要的,我們可能希望可以在不提供iframe的工具下,僅能用原始碼貼上的方式貼入 youtube 的 iframe。

解決這問題 CKEditor 也提供了2個解決方法:

在 CKEditor 配置檔 Config.js 設定

方法一:

config.allowedContent=true;

把allowedContent設定為true就是吧CKEDITOR.editor.filter這功能關閉,不去過濾任何內容,這方式不只針對 iframe,而是所有不開放功能都不會再被過濾了,雖然很方便,但少了一層的限制或許會擔心安全性的問題,所以我們還有第二種方法可選擇。

方法二:

CKEDITOR.editor.filter仍然運作,但允許開放部份不支援功能

config.allowedContent=false;
config.extraAllowedContent='iframe';

便只允許iframe的操作,若允許的工具有多項就用空格分隔,如下

config.extraAllowedContent='b i iframe';

[……]

閱讀更多

CKEditor4 預設字體大小 fontSize_defaultLabel、預設字型 font_defaultLabel 無法運作的解決方案

我們想要設定編輯器中的預設字型及字體大小,依官方文件要設定下列2個屬性
config.font_defaultLabel = ‘Arial’;
config.fontSize_defaultLabel = ’12px’;
可是不知道是Bug還是怎樣,我試過是沒有效果的,
只是會自動選取對應的字型及字體大小的選單選項,
這並不是我們要的,
搞了我好久終於找到解決方案,如下:

1.依然要設定此2屬性:
config.font_defaultLabel = ‘Arial’;
config.fontSize_defaultLabel = ’12px’;

2.修改 contents.css

.cke_editable
{
font-size: 13px;
line-height: 1.6em;
}
改為
.cke_editable
{
font-size: 12pt;
font-family:Arial;
line-height: 1.6em;
}
存檔 > 清除暫存 > OK
預設字型跟字體大小就改變了,
目前我找到的解決方法就是直接去改它的預設CSS,
若有高手有更好的解決方法,希望能跟大家分享~謝謝[……]

閱讀更多

CKEditor4 重要配置設定 config.js (中文)

簡單的介紹一下 CKEditor

CKEditor是一個非常強大的HTML編輯器,舊稱FCKeditor,是一個專門使用在網頁上屬於開放原始碼所見即所得文字編輯器套件,2003年就開始累積很多用戶了,至今已經十年的時間了,我想很多開發人員對CKEditor這名字應該不陌生,CKEditor 主要優點而且相容於絕大部分的網頁瀏覽器,該有的功能全都有,也提供非常多的配置及API可以符合各種不同的開發需求,而且最重要的是免費的^^,除此之外官網上也提供了非常多相關的使用範例,還有非常詳細的開發文件可讓開發者更了解使用方式,但此篇文章主要不是介紹CKEditor,而是介紹CKEditor的基本配置Config檔的設定。

CKEditor4的設定有些地方好像跟之前板本不太一樣,那本文介紹的CKEditor4的這個版本,所以測試環境請以CKEditor4為準,CKEditor4可至官網下載,也可由下方連結下載。

CKEditor 相關資源

CKEditor 官方網站
http://ckeditor.com/

CKEditor 下載
http://ckeditor.com/download

CKEditor DEMO
http://ckeditor.com/demo

CKEditor 開發文件
http://docs.ckeditor.com/

CKEditor 開發文件 > config
http://docs.ckeditor.com/#!/api/CKEDITOR.config

重要配置說明如下,主要分為工具列、基本設定、選單設定三大部份~

工具列配置:

config.toolbar_Basic =
[
&nbsp;[ 'Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink' ],
&nbsp;[ 'FontSize', 'TextColor', 'BGColor' ],
&nbsp;'/',
&nbsp;['ShowBlock','Source']
]; 

config.toolbar_Full =
[
{ name: 'document', items : [ 'Source','-','Save','NewPage','DocProps','Preview','Print','-','Templates' ] },
{ name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
{ name: 'editing', items : [ 'Find','Replace','-','SelectAll','-','SpellChecker', 'Scayt' ] },
{ name: 'forms', items : [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton',
'HiddenField' ] },
'/',
{ name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
{ name: 'paragraph', items : [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv',
'-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl' ] },
{ name: 'links', items : [ 'Link','Unlink','Anchor' ] },
{ name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ] },
'/',
{ name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },
{ name: 'colors', items : [ 'TextColor','BGColor' ] },
{ name: 'tools', items : [ 'Maximize', 'ShowBlocks','-','About' ] }
];

基本設定:

//尺寸設定
config.width=680;
config.height=150;

//重做(上一步)次數
config.undoStackSize = 50;

//介面的語系 Defaults to: '' ; 留空字串的話會字動抓使用者本地端語言(繁中為zh-tw)
config.language = '';

//設定內容語系 Defaults to: 與編輯器語言一樣
config.contentsLanguage = '';

// UI 底色
config.uiColor = '#CCCCCC'; 

//設true CKEDITOR.editor.filter 失去作用 (註二)
config.allowedContent=true;

//allowedContent為false特別允許某些未開啟功能的標籤&nbsp;(註二)
config.extraAllowedContent='iframe';

//工具列可折疊 Defaults to: false
config.toolbarCanCollapse = false;

// CKEditor的主題更換
config.skin = 'moono';

//文字區塊可否拖曳放大縮小 Defaults to: true
config.resize_enabled = false; &nbsp; 
config.resize_minWidth = 500;
config.resize_maxWidth = 750;
config.resize_minHeight = 600;
config.resize_maxHeight = 600;

// 預設字體 - 詳見最下方(註一)
config.font_defaultLabel = 'Arial';

// 預設字體尺寸 - 詳見最下方(註一)
config.fontSize_defaultLabel = '12px'; 

// 載入時內容預設是所見即所得或是原始碼模式
// wysiwyg 所見即所得
// source 原始碼
// Defaults to: 'wysiwyg'
config.startupMode = 'wysiwyg';

//唯讀 Defaults to: false
config.readOnly = false;

//載入時要不要Focus Defaults to: false
config.startupFocus = false; 

// 使用Shift+ Enter組合鍵的行為。
// CKEDITOR.ENTER_P &nbsp; = <p>;
// CKEDITOR.ENTER_BR &nbsp;= <br/>
// CKEDITOR.ENTER_DIV = <div>
// Defaults to: CKEDITOR.ENTER_BR
config.shiftEnterMode = CKEDITOR.ENTER_BR; 

// 使用ENTER鍵產生的標籤
// 使用Shift+ Enter組合鍵的行為。
// CKEDITOR.ENTER_P &nbsp; = <p>;
// CKEDITOR.ENTER_BR &nbsp;= <br/>
// CKEDITOR.ENTER_DIV = <div>
// Defaults to: CKEDITOR.ENTER_BR
config.enterMode = CKEDITOR.ENTER_BR;

關於WORD文字設定

// 貼上的文字是否要清除所有格式 Defaults to: false
config.forcePasteAsPlainText = false;

//從Word貼上時要不要提示「需清理內容為純文字」的對話框。 Defaults to: false
config.pasteFromWordPromptCleanup = false;

//是否忽略所有的字體相關的格式化風格,包括:字體大小、字型、字體顏色、字體背景色
//Defaults to: true
config.pasteFromWordRemoveFontStyles = false;

//是否刪除不能管理編輯器中的元素的樣式。請注意,這並不處理特定字體的風格,這取決於設置而不是pasteFromWordRemoveFontStyles。 Defaults to: true
config.pasteFromWordRemoveStyles = false;

設定選單:

// 字體大小選單 (名稱/字體大小)
CKEDITOR.config.fontSize_sizes = '8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px';

// 字型選單 (名稱/字體)
CKEDITOR.config.font_names = 'Arial/Arial, Helvetica, sans-serif;' +
'Comic Sans MS/Comic Sans MS, cursive;' +
'Courier New/Courier New, Courier, monospace;' +
'Georgia/Georgia, serif;' +
'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' +
'Tahoma/Tahoma, Geneva, sans-serif;' +
'Times New Roman/Times New Roman, Times, serif;' +
'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' +
'Verdana/Verdana, Geneva, sans-serif';

// 設定表情符號icon
config.smiley_descriptions = ['smiley', 'sad', 'wink', 'laugh', 'frown', 'cheeky', 'blush', 'surprise', 'indecision', 'angry'[......]

閱讀更多

網頁預設字體大小 12pt VS 12px ~ 傻傻分不清楚

其一直被一個問題困擾著~
就是網頁的預設字體大小~
看很多人在設定CSS都用font-size:12px為預設字體大小~
很多套件的預設字體大小也是用font-size:12px~
但我印象中 12pt 才是網頁預設的字體大小呀~
但看大家都這麼做~我好像混淆了~
可是照12px做為預設字型~
怎麼覺得字好像變小了~
有點不太方便閱讀~
於是我做了個小實驗要把這2個12弄清楚~

Default = 未套用任何CSS
12pt = font-size:12pt
12px = font-size:12px


ie的截圖

firefox的截圖

chrome的截圖
由此可證,網頁預設字體大小為 12pt,
疑問來了,那為何要很多套件會使用12px呢?
主要原因是因為決大多數的套件都是以英文語系為主,
反而是12px較為美觀, 對此,我也做了下面的小小實驗,

ie的截圖

firefox的截圖

chrome的截圖
英文字體是不是12px反而好看多了呢~
對此我用多一點的文字來測試看看~
因此又做了一個小小的實驗~

中文12pt;

白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。

中文12px;

白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。白日依山盡,黃河入海流。欲窮千里目,更上一層樓。
———————————————————————————-

英文12pt;
My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good.

英文12px;
My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good. My English is not good.

小小的結論
終於弄懂 12pt & 12px 的差異~
12pt – 為網頁的預設字體大小。
用途:
12pt – 較方便閱讀。
12px – 較精緻美觀。
其實字體的大小並沒有一定的規範,只是一個使用者習慣,相信各家瀏器會把12pt當做預設字體大小,一定是此一大小最適合文字閱讀。

但在設計上主要就看客戶的需求、客戶屬性為何,挑選適當的字體大小為預設文字尺寸,滿足目標使用者的需求及網站的可用性;舉例而言:公家機關網站、無障礙網站,主要功能在於內容佈達型的網站,必需兼顧各種族群及閱覽的年齡層,易讀性可能會高過於美觀,因此我們就可以用12pt字體大小;而設計感強烈,講求風格特色的網站如空間設計、平面設計或主題餐廳,網站強調的可能是一種氛圍或形象,則美觀可能就會高過易讀性,這就可以用看起來比較精緻的12px字體大小。

以這兩種此寸為基準去推算,相信以後更能掌握網站字體的大小。

[……]

閱讀更多

mysql的sql檔太大無法匯入又無法更改php.ini 解決方案 BigDump

在MySQL中匯入資料庫的方式有很多種,其中一般比較不熟MySQL指令、或沒有伺服器管理權限的使用者,最常用的方式就是使用phpMyAdmin管理程式的匯入介面來上傳、匯入。不過如果你的「.sql」檔案超大的話,則很容易遇到伺服器的執行時間或檔案大小的限制,結果就是太大的「.sql」檔無法順利上傳、匯入到資料庫中。如果遇到這類情況,而你又沒有權限可以修改「php.ini」檔案中的設定的話,那該怎麼辦呢?

介紹一個相當實用的「BigDump」小工具,他可以幫我們將超大的「.sql」資料檔直接匯入到MySQL資料庫中,儘管你沒有權限修改「php.ini」組態檔中的「upload_max_filesize」或「max_input_time」…等設定值,也可以直接用「BigDump」這支小程式來完成超大資料庫的匯入工作。

重灌狂人這篇文章介紹的很詳細,也有詳細的
若有需要的冰友呀~請瀏覽下方網址

***

轉自:重灌狂人
標題:如何匯入大於2MB以上的MySQL資料庫? (BigDump)

網址:http://briian.com/?p=5102

[……]

閱讀更多

php 設定常數 define為0 判斷居然=任何字串 ?????????????????????Wht

define(‘_test’,0);
echo (_test==’ABC’);
// 居然是1

困擾了我好久..
這不知道是Bug還是怎樣..
常數設為0居然等於任何字串..
知道原因的高手可否告訴小弟..

以下是我目前找出來的解法:

解法1:
define(‘_test’,”);
echo (_test==’ABC’);
// 把常數設為字串,這樣就不相等了

解法2:
define(‘_test’,0);
echo (_test===’ABC’);

[……]

閱讀更多