VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云优惠活动
荫云优惠活动

使用XML-RPC和php上传图片到WordPress(PHP。

主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

使用xml-rpc和php将图片上传到wordpress

假设您熟悉XML-RPC协议及其工作原理,即使是在WordPress中,并且您以前使用过它。添加帖子、删除页面等。对于文本来说一切都很好,但是当你想将图片等文件发送到WordPress时会发生什么呢?

在本教程中,我们将介绍一种非常简单的方法来发送图片到WordPress,以便它可以显示在管理面板的媒体部分。我们将使用PHP发送这张图片,以便您可以将这些代码用于WordPress插件、主题甚至简单的PHP,就像我们的示例中一样。

步骤1计划为了对我们将要做的事情和如何做有一个大致的了解,我将以一个计划开始本教程。基本上,我们将创建一个PHP脚本来上传文件(更准确地说是jpeg图像)到本地WordPress安装。

我们将使用PHP库在PHP中创建一个XML-RPC客户端,我们将使用它连接到WordPress XML-RPC服务器并发送数据。客户端是一个名为“PHP的InclusionXML-RPC库”的PHP库,可以在script.incutio.com上找到。

步骤2准备环境对于本教程,首先需要在Apache服务器上安装PHP和MySQL的WordPress工作版本。您也可以在本地使用它,这是我推荐的,实际上是我们将在本教程中使用的一个示例。

您需要的另一件事是我们在本教程中使用的XML-RPC库。该库是免费的,拥有BSD许可证,可以在scripts.incutio.com上找到。

该库实际上只是一个名为IXR库的PHP文件,我们将在本教程中使用。接下来您需要做的是在本地服务器上安装的htdocs(或Web根目录)文件夹中创建一个目录,您将在其中复制IXR _库。php文件,并在其旁边创建一个index.php文件。Index.php文件现在需要清空。

在WordPress安装过程中,我们需要做的最重要的事情是激活XML-RPC服务。WordPress默认禁用这个功能,所以我们需要在管理面板的设置中激活它。为此,请转到设置-》编写,然后在远程发布的标题下,您会发现XML-RPC旁边的复选框,默认情况下是取消选中的。选择它并单击保存更改。

现在,我们可以与WordPress中内置的XML-RPC服务器进行通信。

步骤3代码解释有趣的部分在这里,让我们开始吧!使用您最喜欢的代码编辑器打开前面提到的index.php文件。

包含库我们需要做的第一件事是包含我们刚刚下载的库文件,以便我们将来可以使用它。因此,我们编辑index.php文件并添加以下代码(不要忘记从PHP标签开始,如示例所示):

& lt?phpinclude _ once(‘IXR _图书馆。PHP‘);?& gt这基本上涵盖了我们脚本工作所需的一切。简而言之,我们将使用刚刚包含的库的客户端部分。我们稍后再做。

读取图像(Jpeg文件)因为我们需要将图像(jpg文件)发送到WordPress,所以我们需要以某种方式发送它们。解决方案是以位格式发送它,您将在后面看到,XML-RPC服务器函数请求它。但是要像这样发送它,我们需要将其内容转换为位,为此,我们需要获取其内容。这个文件(任何jpg图像文件,我们将把它命名为test.jpg)将被放在index.php文件旁边(在同一目录中),在下一节中,我们将读取其内容并将其存储在一个变量中以备后用。

$ myFile = & quottest.jpg & quot;$ FH = fopen($ my file,‘r‘);$ fs = filesize($ my file);$ theData = fread($ FH,$ fs);fclose(FH美元);上面代码的功能是,首先,它创建一个名为$myfile的新变量,该变量包含文件名的字符串值。因为它位于同一个文件夹中,所以不需要为它插入任何其他路径信息,只需输入名称即可,在本例中为test.php。

接下来,我们需要打开文件,因此我们使用PHP函数fopen来完成此操作。我们将它与前一个变量的第一个参数$myFile和第二个参数的另一个字符串一起使用,这表明我们要执行的操作将在文件上执行。字符串值r表示正在读取。我们将打开文件的结果添加到变量$fh中。

然后,因为我们需要文件内容的长度,所以我们将使用PHP函数$filesize返回的值来创建变量$fs,该变量使用参数$myFile。

最后,我们进入读取部分,我们将执行读取操作的函数返回的值赋给变量$theData,即fread。这个函数有两个参数,第一个是之前打开的文件变量($fh),第二个是之前设置的文件大小($fs)。

最后,我们使用函数fclose及其参数$fh来关闭打开的文件。此时,我们已经有了jpg文件的内容,我们将把它发送到WordPress的XML-RPC服务器。

创建XML-RPC客户端在下一节中,我们将使用我们刚刚导入的库来连接到WordPress的安装XML-RPC服务器。为此,我们需要以下三个变量:

$usr(管理面板用户名)、$pwd(管理面板密码)和$ xmlrpc(XML-RPC服务器路径)。注意XML-RPC服务器路径由基本WordPress安装URL后面的xmlprc.php文件+斜杠组成。$ usr =‘admin‘;$ pwd =‘admin‘;$ xmlrpc =‘http://localhost/& lt;a style =‘color:# f60;文本装饰:下划线;href = & quothttps://m.php.cn/zt/15989.html"目标= & quot_blank&quot& gtwordpress & lt/a & gt;/xmlrpc . PHP‘;$client =新IXR客户端($ xmlrpc);接下来我们需要创建一个对服务器的调用。为此,我们将使用刚刚创建的URL字符串和从导入的库文件继承的IXR客户端类。此时,变量$client被声明为链接的新客户端,所有操作都将使用它来完成。

下一部分是可选的,但是如果您愿意,可以像这样激活调试:

$ client-& gt;debug = true如果您激活它,您将更好地了解出现问题时会发生什么。

将数据放在正确的位置在发送数据之前,我们必须正确地组织和格式化数据,并且由于我们需要发送数据的方式,我们必须创建一个包含所有值的数组。我们将该数组命名为$params,并赋予其以下值:

$ params = array(‘name‘= & gt;test.jpg,‘type‘= & gt;image/jpg,‘bits‘= & gt;新IXR Base64($ theData),‘overwrite‘= & gt;假的);首先,我们需要为name的数组索引名称指定一个值“test.jpg”,因为这将是文件的名称。然后我们有了索引名称类型,并给出了image/jpg的值。这是我们正在上传的文件类型。然后我们有一个名为bits的索引,它实际上是我们需要发送的文件。现在,WordPress XML-RPC API要求在64位的基础上发送这个值。为了正确地做到这一点,我们将使用变量$theData,但我们需要通过类IXR_Base64来运行它,以将其相应地编码为Base64位。为了按照请求成功地将文件发送到服务器,base64编码格式的正确性非常重要。Base64编码有很多种。如果使用不正确的代码,错误将不可避免地发生。上例中使用的IXR Base64类根据服务器的要求转换文件的内容。最后,将索引类型overwrite设置为false,并为false属性提供用相同名称覆盖现有文件的选项。

通过XML-RPC发送数据要使该脚本正常工作,我们需要做的最后一件事是通过激活来自$client变量的请求将数据发送到WordPress,如下所示:

$ RES = $ client-& gt;query(‘WP . uploadfile‘,1,$usr,$pwd,$ params);$res变量给出了从$client变量内部调用的查询函数的结果,该变量表示最初声明和启动的XML-RPC客户端实现。基本上,我们向服务器发送一个请求。服务器将接收带有以下参数的请求:

WP . upload file-我们调用并用于上传文件的服务函数。博客ID(每个WordPress博客都有一个ID,默认是1 $ usr-之前声明的用户名变量。$ pwd-先前声明的密码变量。$ params-我们刚刚讨论过的参数数组。完整代码以上所有代码看起来都像这样:

结论实现这样的客户端并不难,但有时您要构建的代码是特定的,因此您需要知道自己在做什么才能达到预期的结果。WordPress XML-RPC上传文件服务器请求的PHP中的XML-RPC客户端实现就是这样一个例子。如果您发送的数据格式不正确,可能不会被接受。这个例子只有几行代码,但是非常具体。同一客户端可用于制作任何其他类型的。

使用不同的带有适当参数的XML-RPC请求函数向WordPress发出请求。

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:使用XML-RPC和php上传图片到WordPress(PHP。 https://zhujicankao.com/111189.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » 使用XML-RPC和php上传图片到WordPress(PHP。
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!