如何在php中配置fckeditor编辑器的方法

 更新时间:2016年11月25日 17:30  点击:1937
fckeditor编辑器是一个支持多语多的网页在线编辑器,他可以支持asp,asp.net,jsp,php等,但是它默认的不是php而是asp哦,下面我们来看看如何在php中配置fckeditor编辑器吧。

下载解压后为文件夹减肥:

删除/FCKeditor/目录下除fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml,fckeditor.php五个文件以外的所有文件
删除目录/editor/_source,_testcases(基本上,所有_开头的文件夹或文件都是可选的),
删除/editor/filemanager/browser/default/connectors/下除PHP目录的所有目录
删除/editor/filemanager/upload/下的除PHP目录的所有目录
删除/editor/lang/下的除了 en.js, zh.js, zh-cn.js三个文件的所有文件


一:修改文件上传语言为PHP
打开fckconfig.js
找到:
var _FileBrowserLanguage = 'asp'
var _QuickUploadLanguage = 'asp'
改成:
var FCKConfig.DefaultLanguage = 'zh-cn' ;
var _FileBrowserLanguage = 'php'
var _QuickUploadLanguage = 'php'


二:启用PHP文件上传

1:启用FileBrowser:
打开fckeditor/editor/filemanager/connectors/php/config.php(这里对中文支持不好,大可要自行对中文名进行处理)

启用文件上传:

找到:
$Config['Enabled'] = false

改成:
$Config['Enabled'] = true

设置上传存放目录:

找到:
$Config['UserFilesPath'] = '/userfiles/'
改成:
$Config['UserFilesPath'] = '你自己的项目路径'


2:启用QuickUpload
打开fckeditor/editor/filemanager/upload/php/config.php
启用文件上传:

找到:
$Config['Enabled'] = false
改成:
$Config['Enabled'] = true


设置上传存放目录:

找到:
$Config['UserFilesPath'] = '/userfiles/'
改成:
$Config['UserFilesPath'] = '你自己的项目路径'

测试


将FCKeditor放在网站根目录
在PHP文件里面,包含/FCKeditor/fckeditor.php文件

 代码如下 复制代码

//包含fckeditor类
include("../FCKeditor/fckeditor.php") ;
//设置编辑器路径
$sBasePath = "/FCKeditor/";
//创建一个Fckeditor,表单的名称为ipaddr
$oFCKeditor = new FCKeditor('ipaddr') ;
$oFCKeditor->BasePath  = $sBasePath ;
//设置表单初始值
$oFCKeditor->Value  = 'This is some <strong>sample text</strong>' ;
$oFCKeditor->Create() ;

//还可设置
$oFCKeditor->Width
$oFCKeditor->Height
$oFCKeditor->ToolbarSet

好了,这样我们的php配置Fckeditor教程就到这里了,上面讲到了如果上传中文名字会乱码的问题,大家可在本站搜索,有相关解决方法。

有经验的朋友可能都会知道在使用像QQIP库时我们查出来的IP地址都是一串数字,下面我们来告诉你如何实现把ip地址转换数字方法。
 代码如下 复制代码

<?php 
echo ip2long("192.168.1.189")."<br>"; 
echo (192*255*255*255+168*255*255+1*256+189)."<br>";
?>    

-1062731331 3194548645

本文章是基于jquery的ajax来实现数据跨域调用,主要是利用php实时返回json数据,这样就方便的实现的ajax跨域数据调用了。

jquery文件我这里不提供下载了,大家可以直接到google去下载哦,

可以在页面定义一个调用方法,如下:

 代码如下 复制代码

function getData(){
$.getJSON("http://123.123.123.123/?callback=?",
{
"m":"data",// 指定php的文件名字
"act":"getdata",// 指定php文件中的方法
"name":"问题儿童"// 传入的参数
},
function(data) {
// 获得返回值
}
});
}

 

对应链接下(123.123.123.123)的PHP文件,一般默认先调用index.php文件,通过index.php文件内的方法处理后,转到对应的php文件,并且找到对应的方法,执行之。
index.php代码如下:

 

 代码如下 复制代码

<?php
/**
* 入口文件
*/
$string = $_SERVER["REQUEST_URI"];// 获取访问的url
$m = get_m($string);
$file_path = "app/".$m.".php";
define('IS_INDEX',true);// 阻止直接访问app目录
require ($file_path);
/**
*
* 获取访问php文件
* @param string $url
*/
function get_m($url){
$strings = explode('m=', $url);
$res = explode("&", $strings[1]);
return empty($res[0])?'index':$res[0];
}
?>

 

data.php代码如下:

 代码如下 复制代码

<?php
/**
* data文件
*/
$act = !empty($_GET['act']) ? $_GET['act'] : '';
if ($act == 'getdata')
{
$name = "我的名字叫:".$_REQUEST['name'];
echo $_REQUEST["callback"]."(".json_encode($name).")";
}
?>

成功调用后,画面就能获取到返回的json数据了

总结:

方法简单的很就是利用了php的json_encode()函数把用户提交过来的数据我进行处理之后再输出json数据,jquery来接受这些数据就实现了我们要的跨域数据调用了。

在php中要生成验证码图片是相当的简单的,因为在php中为我们提供了图形gd.dll库,要启用gd图形库我们只要在在php.ini中把php-gd前面的;去就可以了。

方法一

 代码如下 复制代码

$authnum='';
$ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
$list=explode(",",$ychar);//分割函数
for($i=0;$i<4;$i++){
$randnum=rand(0,35);
$authnum.=$list[$randnum];//以数组的形式输出

方法二: 
 

 代码如下 复制代码
private function createCheckCode()
{
for(i=0;i<this->codeNum;i++)
{
number = rand(0,2);
switch(number)
{
case 0: rand_number = rand(48,57); break;//数字
case 1: rand_number = rand(65,90);break;//大写字母
case 2: rand_number = rand(97,122);break;//小写字母
}
$asc = sprintf("%c",rand_number);
$asc_number = asc_number.asc;
}
return asc_number;
}

方法三: 
 

 代码如下 复制代码
srand(microtime()*100000);//相当于计时器
$string="abcdefghigklmnopqrstuvwxyz123456789";
for($i=0;$i<4;$i++)
{
$new_number.=$string[rand(0,strlen($string)-1)];//随即的产生一个数组
}

方法四: 
 

 代码如下 复制代码

for($i=0;$i<4;$i++)
{
$rand.=dechex(rand(1,15));//将十进制转化为十六进制
}


 

随机生成数字,字母的代码:

 

 代码如下 复制代码
<?php
//che.php
session_start();
for($i=0;$i<4;$i++)
{
$rand.=dechex(rand(1,15));
}
$_SESSION['check_num']=$rand;
$image=imagecreatetruecolor(50,30);
$bg=imagecolorallocate($im,0,0,0);//第一次用调色板的时候,背景颜色
$te=imagecolorallocate($im,255,255,255);
imagestring($image,6,rand(0,20),rand(0,2),$rand,$te);
ob_clean();//PHP网页中因为 要生成验证码而出现 图像"http://localhost/**.php"因其本身有错无法显示
header("Content-type:image/jpeg"); imagejpeg($image);
?>

给图片画出干扰线代码: 
 

 代码如下 复制代码
for($i=0;$i<8;$i++)//画出多条线
{
$cg=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));//产生随机的颜色
imageline($im,rand(10,40),0,rand(10,40),20,$cg);
}

给图片画出干扰点的代码: 
 

 代码如下 复制代码
for($i=0;$i<80;$i++)//画出多个点
{
imagesetpixel($im,rand(0,40),rand(0,20),$cg);
}

把文字写入图片代码: 
 

 代码如下 复制代码

$str=array('我','我','亲','亲');//存储显示的汉字
for($i=0;$i<4;$i++)
{
$sss.=$str[rand(0,3)];//随机显示汉字
}

//$str=iconv("gb2312","utf-8",$str); //汉字编码转化,我的好像不需要
imagettftext($im,10,0,rand(5,60),rand(5,60),$te,"simhei.ttf",$sss);//

最后我们结合实际分享一个完整的实例

 

 代码如下 复制代码
/**
 * 生成验证码图片
 *
 * @param String $word 验证码在session中的变量名称
 */
function valiCode($word='randcode'){
 Header("Content-type: image/gif");
 $border = 0; //是否要边框 1要:0不要
 $how = 4; //验证码位数
 $w = $how*15; //图片宽度
 $h = 18; //图片高度
 $fontsize = 10; //字体大小
 $alpha = "abcdefghijkmnpqrstuvwxyz"; //验证码内容1:字母
 $number = "23456789"; //验证码内容2:数字
 $randcode = ""; //验证码字符串初始化
 srand((double)microtime()*1000000); //初始化随机数种子
 $im = ImageCreate($w, $h); //创建验证图片
 /*
 * 绘制基本框架
 */
 $bgcolor = ImageColorAllocate($im, 255, 255, 255); //设置背景颜色
 ImageFill($im, 0, 0, $bgcolor); //填充背景色
 if($border)
 {
  $black = ImageColorAllocate($im, 0, 0, 0); //设置边框颜色
  ImageRectangle($im, 0, 0, $w-1, $h-1, $black);//绘制边框
 }
 
 /*
 * 逐位产生随机字符
 */
 for($i=0; $i<$how; $i++)
 {
  $alpha_or_number = mt_rand(0, 1); //字母还是数字
  $str = $alpha_or_number ? $alpha : $number;
  $which = mt_rand(0, strlen($str)-1); //取哪个字符
  $code = substr($str, $which, 1); //取字符
  $j = !$i ? 4 : $j+15; //绘字符位置
  $color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字符随即颜色
  ImageChar($im, $fontsize, $j, 3, $code, $color3); //绘字符
  $randcode .= $code; //逐位加入验证码字符串
 }
 
 /*
 * 如果需要添加干扰就将注释去掉
 *
 * 以下for()循环为绘背景干扰线代码
 */
 /* + -------------------------------绘背景干扰线 开始-------------------------------------------- + */
 for($i=0; $i<5; $i++)//绘背景干扰线
 {
  $color1 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰线颜色
  ImageArc($im, mt_rand(-5,$w), mt_rand(-5,$h), mt_rand(20,300), mt_rand(20,200), 55, 44, $color1); //干扰线
 }
 /* + -------------------------------绘背景干扰线 结束-------------------------------------- + */
 
 /*
 * 如果需要添加干扰就将注释去掉
 *
 * 以下for()循环为绘背景干扰点代码
 */
 /* + --------------------------------绘背景干扰点 开始------------------------------------------ + */
 
 for($i=0; $i<$how*40; $i++)//绘背景干扰点
 {
  $color2 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰点颜色
  ImageSetPixel($im, mt_rand(0,$w), mt_rand(0,$h), $color2); //干扰点
 }
 
 /* + --------------------------------绘背景干扰点 结束------------------------------------------ + */
 
 //把验证码字符串写入session  方便提交登录信息时检验验证码是否正确  例如:$_POST['randcode'] = $_SESSION['randcode']
 $_SESSION[$word] = $randcode;
 /*绘图结束*/
 Imagegif($im);
 ImageDestroy($im);
 /*绘图结束*/
}

调用方法也很简单把上面实例保存img.php文件,然后在要调用的页面
html页面如下

 代码如下 复制代码

<script language="javascript">
 function refresh_code()
 {
  form1.imgcode.src="verifycode.php?a="+Math.random();
 }
</script>

<form id="form1" name="form1" method="post" action="checkcode.php">
  <label for="code">验证码:</label>
  <input type="text" name="code" id="textfield" />
  <img id="imgcode" src="VerifyCode.php" alt="验证码" />
  <a href="javascript:refresh_code()">看不清?换一个</a>
  <input type="submit" name="button" id="button" value="提交" />
</form>

这要就可以实现验证码调用了。

再加个提交验证验证码是否正确

 代码如下 复制代码

<?php
session_start();
  if((strtoupper($_POST["code"])) == strtoupper(($_SESSION["VerifyCode"]))){
 print("验证码正确,");
  }else{
    print("验证码错误,");
  }

?>

这要就我们完成了从生成验证码图片和使用的整个过程了,也算是从php入门到精通验证码全部讲了。

文章介绍了PHP list(),each(),reset()函数应用详解,有需要了解的朋友可以参考一下。

1.list函数

list函数是把数组中的值赋给一些变量,语法如下:

void list ( mixed $varname, mixed $varname... )


像 array() 一样,这不是真正的函数,而是语言结构。list() 用一步操作给一组变量进行赋值。

            注意: list() 仅能用于数字索引的数组并假定数字索引从 0 开始。

例1. list() 例子

代码:

 代码如下 复制代码

<?php
$arr=array(1,2,3);
list($a,$b,$c)=$arr;
echo "$a是$a,<br/>$b是$b,<br/>$c是$c.<br/>";
?>

显示为:

$a是1,
$b是2,
$c是3.      

       注意list函数的下标必须是数字,还必须是从0开始的。

2.each函数与reset函数

each 函数是返回数组中当前的键/值对并将数组指针向前移动一步,注意是一对,下面详细说明。

该函数语法:

array each ( array &$array )

返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键

值为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。如果内部

指针越过了数组的末端,则 each() 返回 FALSE。这里面为什么each函数有四个下表呢?其实each函

数得到这四个下标只是方便我们操作而已,我们可以用0,1作为索引,也可以用key,value作为索引。

例2:each例子

代码:

 代码如下 复制代码

<?php
$arr=array("我是第一个值","我是第二个值","我是第三个值");
echo "当我们用0,1为索引时:<br/><br/>";
$a=each($arr);
echo "我在$arr数组中的位置为:".$a['0'];
echo "<br/>";
echo "我在$arr数组中的值为:".$a['1'];
echo "<br/><br/>";
echo "当我们用key,value为索引时:<br/><br/>";
$b=each($arr);
echo "我在$arr数组中的位置为:".$b['key'];
echo "<br/>";
echo "     我在$arr数组中的值为:".$b['value'];
?>

显示为:

当我们用0,1为索引时:
我在$arr数组中的位置为:0
我在$arr数组中的值为:我是第一个值
当我们用key,value为索引时:
我在$arr数组中的位置为:1
我在$arr数组中的值为:我是第二个值

还可用each函数与list函数结合来遍历数组,如下例:

例3:

 代码如下 复制代码
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
      echo "$key => $valn";
}
?>

显示为:

a => apple b => banana c => cranberry

这里要注意list函数的下标必须是数字,还必须是从0开始的。

里面的reset函数解释:

在执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。如果要再用 each 遍历数组,必须使用 reset()。 如果是第一次遍历数组可以不用。

详细说一下reset函数:

reset 是将数组的内部指针指向第一个单元,语法为:

mixed reset ( array &$array )

reset() 将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值,如果数组为空则返回 FALSE。

可以将上面的例2与下面的例子对比一下,就很容易明白了。。。、

代码:

 代码如下 复制代码

<?php
$arr=array("我是第一个值","我是第二个值","我是第三个值");
echo "当我们用0,1为索引时:<br/><br/>";
$a=each($arr);
echo "我在$arr数组中的位置为:".$a['0'];
echo "<br/>";
echo "     我在$arr数组中的值为:".$a['1'];
echo "<br/><br/>";
echo "当我们用key,value为索引时:<br/><br/>";
reset($arr);
$b=each($arr);
echo "我在$arr数组中的位置为:".$b['key'];
echo "<br/>";
echo "     我在$arr数组中的值为:".$b['value'];
?>

显示为:

当我们用0,1为索引时:

我在$arr数组中的位置为:0
我在$arr数组中的值为:我是第一个值

当我们用key,value为索引时:

我在$arr数组中的位置为:0
我在$arr数组中的值为:我是第一个值        //注意例2中的这一行显示,就明白了

[!--infotagslink--]

相关文章

  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • Mysql select语句设置默认值的方法

    1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • c#中分割字符串的几种方法

    单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • 连接MySql速度慢的解决方法(skip-name-resolve)

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21
  • js控制页面控件隐藏显示的两种方法介绍

    javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
  • C#方法的总结详解

    本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下...2020-06-25
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • EXCEL数据上传到SQL SERVER中的简单实现方法

    EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL传到服务器上.做法: 在ASP.NET环境中,添加一个FileUpload上传控件后台代码的E.X: 复制代码 代码如下: if...2013-09-23
  • mysql锁定单个表的方法

    mysql锁定单个表的方法 复制代码 代码如下:mysql>lock table userstat read; mysql>unlock tables; 页级的典型代表引擎为BDB。 表级的典型代表引擎为MyISAM,MEMORY以及很久以前的ISAM。 行级的典型代表引擎为INN...2014-05-31