示例:php将文本内容写入一个文件(面向对象写法)

这篇具有很好参考价值的文章主要介绍了示例:php将文本内容写入一个文件(面向对象写法)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、JsonContentHandler

class JsonContentHandler extends ContentHandler
{
    public function write(): bool
    {
        $json = json_encode($this->contents, JSON_UNESCAPED_UNICODE);
        if (file_put_contents($this->source, $json) !== false) {
            return true;
        } else {
            return false;
        }
    }

    public function read(): bool
    {
        $json = file_get_contents($this->source);
        if (!$json) {
            return false;
        }
        $this->contents = json_decode($json, true);
        return true;
    }
}

2、XmlContentHandler

class XmlContentHandler extends ContentHandler
{
    public function write(): bool
    {
        // TODO: 实现写入xml函数.
    }

    public function read(): bool
    {
        // TODO: 实现读取xml函数
    }
}

3、ContentHandler

abstract class ContentHandler
{
    protected $source;
    protected $contents = [];

    public function __construct($source)
    {
        $this->source = $source;
    }

    public function addContent(string $key, string $val)
    {
        $this->contents[$key] = $val;
    }

    public function getAllContents(): array
    {
        return $this->contents;
    }


    public static function getInstance(string $filename): ContentHandler
    {
        if (preg_match("/\.xml$/i", $filename)) {
            return new XmlContentHandler($filename);
        } elseif (preg_match("/\.json$/i", $filename)) {
            return new JsonContentHandler($filename);
        } else {
            throw new Exception("暂不支持该文件类型");
        }
    }

    abstract public function write(): bool;

    abstract public function read(): bool;
}

4、客户端调用

 //功能1读写
$test = ContentHandler::getInstance(__DIR__ . "/test.json");
$test->addContent("name", "张三");
$test->addContent("sex", "男");
$test->addContent("age", 20);
$result = $test->write();
if (!$result) {
    echo '数据写入文件失败!';
    exit;
}
$contents = $test->getAllContents();
var_export($contents);
exit;
/** 输出
 * array (
 * 'name' => '张三',
 * 'sex' => '男',
 * 'age' => '20',
 * )
 */


//功能二:只读
$test = ContentHandler::getInstance(__DIR__ . "/test.json");
$test->read();
$contents = $test->getAllContents();
var_export($contents);exit;
/** 输出
 * array (
 * 'name' => '张三',
 * 'sex' => '男',
 * 'age' => '20',
 * )
 */

文章来源地址https://www.toymoban.com/news/detail-811682.html

到了这里,关于示例:php将文本内容写入一个文件(面向对象写法)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 11、PHP面向对象1

    1、PHP的面向对象与其他语言类似,但也有不同。 PHP访问成员变量时,需要用“-”,而不能用“.”,访问成员函数时,需要用“-”,而不能用“.”。操作符“::”可以在没有任何声明实例的情况下访问类中的静态成员,必须用static定义。 PHP用new实例化对象时,类名后面的括

    2024年02月16日
    浏览(33)
  • 第六章 面向对象的PHP

    作用域:公共 (public)、受保护 (protected)、私有(private) 的属性或方法 公共属性 :公共的属性可以直接通过相应对象进行访问和处理 受保护属性:仅能在内部使用的属性,也可以被衍生类访问或处理 私有属性:只能在定义了该属性的类的内部访问或处理 公共方法:可以在任何

    2024年02月11日
    浏览(33)
  • PHP的面向对象编程(OOP)特性是什么?

    PHP 的面向对象编程(OOP)特性使得开发者能够以更模块化、可维护的方式组织和设计代码。以下是 PHP 中面向对象编程的一些主要特性: 类和对象: 类是一个抽象的蓝图,用于定义对象的属性(成员变量)和方法(成员函数)。对象是类的实例,具有类定义的属性和方法。

    2024年02月04日
    浏览(31)
  • Java面向对象编程实战详解(图书管理系统示例)

    Java面向对象编程(Object-Oriented Programming,OOP)是Java语言的核心特性之一,它提供了一种组织代码的方法,将现实世界中的事物抽象为对象,并通过对象之间的交互来构建程序。Java面向对象编程包含以下主要概念: 类和对象(Class and Object): 类是面向对象编程的基本构建块

    2024年02月15日
    浏览(35)
  • C++ 写入txt文件内容并追加内容

    咨询通义千问的“C++ 写入txt文件内容并追加内容”: 可以使用ofstream类来写入txt文件内容。若想追加内容,可以使用ios::app标志来创建输出流对象,然后在写入时将其设置为ios::app。以下是一个示例代码: 在这个例子中,我们创建了一个名为“example.txt”的输出流对象,并将

    2024年02月11日
    浏览(35)
  • 【PHP】文件写入和读取详解

    一.实现文件读取和写入的基本思路: 1.通过fopen方法打开文件:$fp =fopen(/*参数,参数*/),fp为Resource类型 2.进行文件读取或者文件写入操作(这里使用的函数以1中返回的$fp作为参数) 3.   调用fclose($fp)关闭关闭文件 二:使用fopen方法打开文件 fopen(文件路径[string],打开模式

    2024年02月10日
    浏览(31)
  • Linux向文件中写入内容

    1.覆盖写入 2.追加写入 3.窗口输出指定内容

    2024年02月09日
    浏览(29)
  • 技术分享:PHP读取TXT文本内容的五种实用方法

    在Web开发中,我们经常需要读取和处理文本文件。PHP作为一种流行的服务器端脚本语言,提供了多种方法来读取TXT文本内容。本文将介绍五种不同的PHP教程,帮助您学习如何使用PHP读取TXT文本内容。PHP读取文件内容在实际开发当中,还是比较常见的,所以今天我就给大家分享

    2024年01月18日
    浏览(33)
  • 10天玩转Python第9天:python 面向对象 全面详解与代码示例

    今日内容 异常 模块和包 导入模块(导包) if __name__ == \\\"__main__\\\": Unitest 框架的学习 了解, 基本组成 异常传递[了解] 导入模块的语法 方式一 方式二 方式三 [了解] 基本不用 模块的查找顺序 __name__  的作用 代码练习 包(package) 介绍 框架 什么是 UnitTest 框架? 为什么使用 UnitTest 框架

    2024年02月04日
    浏览(36)
  • C#创建文件写入及追加内容

    1.判断文件是否存在,若存在则打开写入,否则创建文件并写入 2.调用方法写入内容,其中回车用rn  3.txt文件中追加内容  4.调用追加TXT方法,并将dataGridView控件内容写入txt       

    2024年02月15日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包