php调用ckeditor?怎么调用ckeditor

 更新时间:2016年11月25日 17:26  点击:1736
怎么调用ckeditor呢,下面小编来给大家总结一处利用php 调用ckeditor编辑器与js调用ckeditor的方法吧,其它脚本调用方法大致一样了。

PHP调用FCKeditor 

将FCKeditor放在网站根目录
在PHP文件里面,包含/FCKeditor/ckeditor/" target="_blank">fckeditor.php文件

在网页中需要放置该编辑器的地方插入下面代码即可调用:

 代码如下 复制代码
   <?php
    //包含fckeditor类
    include("fckeditor/fckeditor.php") ;
    //创建一个FCKeditor,表单名称为 jzleditor
    $oFCKeditor = new FCKeditor("jzleditor");
    //设置编辑器路径
    $oFCKeditor->BasePath = "fckeditor/";
    $oFCKeditor->ToolbarSet = "Default";//工具按钮
    $oFCKeditor->Value =$cont; //;设置初始内容
    $oFCKeditor->Width="100%"; //设置它的宽度
    $oFCKeditor->Height="550px"; //设置它的高度
    $oFCKeditor->Create();
   ?>

输入内容,提交后,在处理的文件中通过$_POST["jzleditor"]来取得输入的内容

js调用FCKeditor 

CKEDITOR的使用很简单,先download CKEDITOR 3.6.1(默认是PHP版的),然后在调用页面的head中,写下如下两段js:

 代码如下 复制代码

<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<script type="text/javascript">                                                                    window.onload = function()
        {
         CKEDITOR.replace( "content" );
        };

</script>

注意:这里的content是<textarea>的名称,如下所示:

<textarea name="content">ddd</textarea>如果是3.6.2版本,该语句可能要写成:

<textarea name="content" class="ckeditor">ddd</textarea>

版本差异造成的问题,请大家在运行时注意这个问题。

在下一个页面根据name值content获取相应的值

CPanel面板是一款非常强大的虚拟主机管理面板了,如果你是空间商估计这个cp面板你不陌生哦,下面我来介绍利用php实现自动备份网站文件.

 

 代码如下 复制代码
<?php
// PHP script to allow periodic cPanel backups automatically.
// Based on script posted by max.hedroom in cpanel.net forums
// This script contains passwords. KEEP ACCESS TO THIS FILE SECURE!
 
// ********* 下面项目需要设定 *********
 
// cPanel登录信息
$cpuser = "**"; // CPanel帐号
$cppass = "***"; // CPanel密码
$domain = "***"; // cPanel所在域名或IP
$skin = "x3"; // 正在使用的cPanel风格,默认"x3"。
 
 
/************** 备份目的地 ***************
"homedir" - 本地主目录
"ftp" - 远程FTP备份(主动模式)
"passiveftp" - 远程FTP备份(被动模式)
"scp" - 加密传输(需服务器支持)
****************************************/
$savedir = "ftp"; // 备份目的地,默认"homedir",即只做本地备份。
 
// FTP上传的信息(备份目的地为本地的,可不填)
 
$ftpuser = "***"; // FTP帐号
$ftppass = "***!"; // FTP密码
$ftphost = "***"; // FTP服务器IP
$ftpport = "21"; // FTP端口,默认21
$ftprdir = "/"; // 远程FTP目录,默认"/"
 
// 通知信息
$notifyemail = "**@gmail.com"; // 信息反馈邮件地址
 
// 安全模式
$secure = 1; // 0为标准http, 1为ssl(需要主机支持ssl)
 
// 设定值为1时会在排程记录中产生网页报告
$debug = 0;
 
// *********** 以下内容不要更改! *********
 
if ($secure) {
   $url = "ssl://".$domain;
   $port = 2083;
} else {
   $url = $domain;
   $port = 2082;
}
 
$socket = fsockopen($url,$port);
if (!$socket) { echo "Failed to open socket connection... Bailing out!n"; exit; }
 
// Encode authentication string
$authstr = $cpuser.":".$cppass;
$pass = base64_encode($authstr);
 
$params = "dest=$savedir&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&port=$ftpport&rdir=$ftprdir&submit=Generate Backup";
 
// Make POST to cPanel
fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0rn");
fputs($socket,"Host: $domainrn");
fputs($socket,"Authorization: Basic $passrn");
fputs($socket,"Connection: Closern");
fputs($socket,"rn");
 
// Grab response even if we don't do anything with it.
while (!feof($socket)) {


以上代码复制保存为: fullbackup.php文件,上传到public_html以外的目录

这个全局脚本包含cPanel的登录帐号和密码,为了安全考虑,需要将这个脚本放到public_html文件夹以外的文件夹中,比如:“/home/yourname/backup”,并设置该文件夹的权限为600。切记!

2.填写好相关信息,修改文件名为fullbackup.php
3.将上述脚本上传到“/home/yourdomain/beifen”目录。(没有可以新建beifen目录)
4.将beifen目录的权限改为600
5.打开cpanel面板的时钟守护作业(Cron Jobs)。

选择作业频率,在command栏输入

 代码如下 复制代码

1 /usr/bin/php -q /home/yourname/backup/fullbackup.php

下面我来给大家介绍在php中操作excel两个实例,一个是利用PHP-ExcelReader导入excel并输出,另一种是直接输入excel并导出,下面看实例。


借助PHP-ExcelReader这个开源类,我们可以轻松地导入Excel文件数据,示例代码如下:

PHP-ExcelReader下载地址:http://sourceforge.net/projects/phpexcelreader/

例.导入Excel文件

 代码如下 复制代码

<?php
require_once 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('gbk');
$data->read('test.xls');
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
    for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
        echo """.$data->sheets[0]['cells'][$i][$j]."",";
    }
    echo "n";
}
?>

例.phpexcel导到excel

1.    test.php

 代码如下 复制代码

require_once 'reader.php';

// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();

// Set output Encoding.
$data->setOutputEncoding('gbk');

//”data.xls”是指要导入到mysql中的excel文件
$data->read('data.xls');

@ $db = mysql_connect('localhost', 'root', '123456') or
       die("Could not connect to database.");//连接数据库
mysql_query("set names 'gbk'");//输出中文
mysql_select_db('mydb');       //选择数据库
error_reporting(E_ALL ^ E_NOTICE);

for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
//以下注释的for循环打印excel表数据
/*
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
            echo """.$data->sheets[0]['cells'][$i][$j]."",";
           }
           echo "n";
//PHP开源代码


*/
//以下代码是将excel表数据【3个字段】插入到mysql中,根据你的excel表字段的多少,改写以下代码吧!
    $sql = "INSERT INTO test VALUES('".
               $data->sheets[0]['cells'][$i][1]."','".
                 $data->sheets[0]['cells'][$i][2]."','".
                 $data->sheets[0]['cells'][$i][3]."')";
    echo $sql.'
';
       $res = mysql_query($sql);
}

?>

例.导出excel文件


比如我需要一个做php导出 excel的的程序,只需要把相关的数据导出到excel表就可以了,这么简单的操作就不需要用那些类库什么的了。直接用header的方式就可以了:header("Content-type:application/vnd.ms-excel");

看看代码:

 代码如下 复制代码

<?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=Export_test.xls");
$tab="t"; $br="n";
$head="编号".$tab."备注".$br;
//输出内容如下: 
echo $head.$br;
echo  "test321318312".$tab; 
echo  "string1";
echo  $br;

echo  "330181199006061234".$tab;  //直接输出会被Excel识别为数字类型
echo  "number";
echo  $br;

echo  "="330181199006061234"".$tab;  //原样输出需要处理
echo  "string2";
echo  $br;
?>

在导出后会发现一个问题,如果数据是数字会出现一些意想不到的情况。比如,"012345",在excel中会变成"12345";如果输入身份证号码这样的长数字,在excel中会用科学计数法表示出来,并且最后的四位数字会出现偏差,变位0000等情况。这就需要把单元格设置为文本格式,方法是
echo  "="330181199006061234""如果程序是utf-8编码的,还需要用iconv函数去转码,不然是会乱码的,乱码的。

另word格式导入类似,,指定header就可以了:

 代码如下 复制代码

header("Content-Type:   application/msword");       
header("Content-Disposition:   attachment;   filename=doc.doc"); 

因为工作中我们经常会需要使用到Curl多线程来处理一些事情,不得己就深入了对Curl多线程研究了,下面小编来给各位同学介绍一下Curl多线程实例与原理吧。

相信许多人对php手册中语焉不详的curl_multi一族的函数头疼不已,它们文档少,给的例子 更是简单的让你无从借鉴,我也曾经找了许多网页,都没见一个完整的应用例子。

curl_multi_add_handle
curl_multi_close
curl_multi_exec
curl_multi_getcontent
curl_multi_info_read
curl_multi_init
curl_multi_remove_handle
curl_multi_select

一般来说,想到要用这些函数时,目的显然应该是要同时请求多个url,而不是一个一个依次请求,否则不如自己循环去调curl_exec好了。

步骤总结如下:

第一步:调用curl_multi_init
第二步:循环调用curl_multi_add_handle
这一步需要注意的是,curl_multi_add_handle的第二个参数是由curl_init而来的子handle。
第三步:持续调用curl_multi_exec
第四步:根据需要循环调用curl_multi_getcontent获取结果
第五步:调用curl_multi_remove_handle,并为每个字handle调用curl_close
第六步:调用curl_multi_close
这里有PHP手册上的例子:

 代码如下 复制代码

<?php 

// 创建一对cURL资源 

$ch1 = curl_init(); 

$ch2 = curl_init(); 

  

// 设置URL和相应的选项 

curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/"); 

curl_setopt($ch1, CURLOPT_HEADER, 0); 

curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/"); 

curl_setopt($ch2, CURLOPT_HEADER, 0); 

  

// 创建批处理cURL句柄 

$mh = curl_multi_init(); 

  

// 增加2个句柄 

curl_multi_add_handle($mh,$ch1); 

curl_multi_add_handle($mh,$ch2); 

  

$active = null; 

// 执行批处理句柄 

do { 

    $mrc = curl_multi_exec($mh, $active); 

} while ($mrc == CURLM_CALL_MULTI_PERFORM); 

  

while ($active && $mrc == CURLM_OK) { 

    if (curl_multi_select($mh) != -1) { 

        do { 

            $mrc = curl_multi_exec($mh, $active); 

        } while ($mrc == CURLM_CALL_MULTI_PERFORM); 

    } 

  

// 关闭全部句柄 

curl_multi_remove_handle($mh, $ch1); 

curl_multi_remove_handle($mh, $ch2); 

curl_multi_close($mh); 

  

?>

整个使用过程差不多就是这样,但是,这个简单代码有个致命弱点,就是在do循环的那段,在整个url请求期间是个死循环,它会轻易导致CPU占用100%。

现在我们来改进它,这里要用到一个几乎没有任何文档的函数curl_multi_select了,虽然C的curl库对select有说明,但是,php里的接口和用法确与C中有不同。

把上面do的那段改成下面这样:

 代码如下 复制代码

 

do { 

                        $mrc = curl_multi_exec($mh,$active); 

                 } while ($mrc == CURLM_CALL_MULTI_PERFORM); 

                while ($active and $mrc == CURLM_OK) { 

                        if (curl_multi_select($mh) != -1) { 

                                do { 

                                        $mrc = curl_multi_exec($mh, $active); 

                                 } while ($mrc == CURLM_CALL_MULTI_PERFORM); 

                         } 

                 }

因为$active要等全部url数据接受完毕才变成false,所以这里用到了curl_multi_exec的返回值判断是否还有数据,当有数据的时候就不停调用curl_multi_exec,暂时没有数据就进入select阶段,新数据一来就可以被唤醒继续执行。这里的好处就是CPU的无谓消耗没有了。

另外:还有一些细节的地方可能有时候要遇到:

控制每一个请求的超时时间,在curl_multi_add_handle之前通过curl_setopt去做:
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

判断是否超时了或者其他错误,在curl_multi_getcontent之前用:curl_error($conn[$i]);


本类的特点:

运行非常稳定。

设置一个并发就会始终以这个并发数进行工作,即使通过回调函数添加任务也不影响。
CPU占用极低,绝大部分CPU消耗在用户的回调函数上。
内存利用率高,任务数量较多(15W个任务占用内存会超过256M)可以使用回调函数添加任务,个数自定。
能够最大限度的占用带宽。
链式任务,比如一个任务需要从多个不同的地址采集数据,可以通过回调一气呵成。
能够对CURL错误进行多次尝试,次数自定(大并发一开始容易产生CURL错误,网络状况或对方服务器稳定性也有可能产生CURL错误)。
回调函数相当灵活,可以多种类型任务同时进行(比如下载文件,抓取网页,分析404可以在一个PHP进程中同时进行)。
可以非常容易的定制任务类型,比如检查404,获取redirect的最后url等。
可以设置缓存,挑战产品节操。

不足:
不能充分利用多核CPU(可以开多个进程解决,需要自己处理任务分割等逻辑)。
最大并发500(或512?),经过测试是CURL 内部限制,超过最大并发会导致总是返回失败。
目前没有断点续传功能。
目前任务是原子性的,不能对一个大文件分为几部分分别开线程下载。

以前我给大家有讲过生成多个随机数,下面我再来介绍一篇关于php 生成N个不重复的随机数实例,如果你有兴趣大家可参考一下。

要实现此功能并非难事,但是让我学习到很多。

 代码如下 复制代码

/** 

 * 生成一定数量的不重复随机数 

 * @param int $min ,$max指定随机数的范围 

 * @param int $max 

 * @param int $num 指定生成数量 

 * @return array 

 */

function unique_rand($min, $max, $num) { 

    $count = 0; 

    $return = array(); 

    while ($count < $num) { 

        $return[] = mt_rand($min, $max); 

        $return = array_flip(array_flip($return)); 

        $count = count($return); 

    } 

    shuffle($return); 

    return $return; 

}

生成随机数时用了 mt_rand() 函数。这个函数生成随机数的平均速度要比 rand() 快四倍。
去除数组中的重复值时用了“翻翻法”,就是用 array_flip() 把数组的 key 和 value 交换两次。这种做法比用 array_unique() 快得多。
返回数组前,先使用 shuffle() 为数组赋予新的键名,保证键名是 0-n 连续的数字。如果不进行此步骤,可能在删除重复值时造成键名不连续,给遍历带来麻烦。

[!--infotagslink--]

相关文章

  • Spring AOP 对象内部方法间的嵌套调用方式

    这篇文章主要介绍了Spring AOP 对象内部方法间的嵌套调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-29
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • c# 三种方法调用WebService接口

    这篇文章主要介绍了c# 三种方法调用WebService接口的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • js实现调用网络摄像头及常见错误处理

    这篇文章主要介绍了js实现调用网络摄像头及常见错误处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-07
  • 解决Vue watch里调用方法的坑

    这篇文章主要介绍了解决Vue watch里调用方法的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-07
  • c#动态调用Webservice的两种方法实例

    这篇文章介绍了c#动态调用Webservice的两种方法实例,有需要的朋友可以参考一下...2020-06-25
  • 解决vue watch数据的方法被调用了两次的问题

    这篇文章主要介绍了解决vue watch数据的方法被调用了两次的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-07
  • c#中WebService的介绍及调用方式小结

    这篇文章主要给大家介绍了关于c#中的WebService及其调用方式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • C#中加载dll并调用其函数的实现方法

    下面小编就为大家带来一篇C#中加载dll并调用其函数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • javascript实现方法调用与方法触发小结

    这篇文章主要介绍了javascript实现方法调用与方法触发小结的相关资料,需要的朋友可以参考下...2016-03-30
  • PHP调用MySQL存储过程并返回值实现程序

    本文章来给大家详细介绍在php中如何来调用执行mysql存储过程然后返回由存储过程返回的值了,有需要了解的同学可进入参考。 。调用存储过程的方法。 a。如果存储过...2016-11-25
  • C#异步调用的好处和方法分享

    我们要明确,为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了...2020-06-25
  • C#调用python脚本的方法步骤(2种)

    这篇文章主要介绍了C#调用python脚本的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 浅谈PHP调用Webservice思路及源码分享

    方法一:直接调用复制代码 代码如下:<? /******************************************************************************/ /* 文件名 : soapclient.php /* 说 明 : WebService接口客户端例程 /****************...2014-06-07
  • 基于C#调用c++Dll结构体数组指针的问题详解

    下面小编就为大家分享一篇基于C#调用c++Dll结构体数组指针的问题详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • C# Soap调用WebService的实例

    下面小编就为大家带来一篇C# Soap调WebService的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • Python调用.NET库的方法步骤

    这篇文章主要介绍了Python调用.NET库的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-09
  • 基于C#调用OCX控件的常用方法(推荐)

    下面小编就为大家分享一篇基于C#调用OCX控件的常用方法推荐,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • C#访问及调用类中私有成员与方法示例代码

    访问一个类的私有成员不是什么好做法,大家也都知道私有成员在外部是不能被访问的,这篇文章主要给大家介绍了关于C#访问及调用类中私有成员与方法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下...2020-06-25
  • jQuery实现跨域iframe接口方法调用

    cross.js复制代码 代码如下: (function(global){ global.Cross = { signalHandler: {}, on: function(signal, func){ this.signalHandler[signal] = func; }, call: function(win, domain,...2015-03-15