日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 怎么解析文本,PHP解析自定义纯文本数据库

發布時間:2024/9/27 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 怎么解析文本,PHP解析自定义纯文本数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有一個文本文件,存儲有關不同項目的信息.

該文件是結構化的.文件中的每個項目都由大括號{}分隔,并以逗號開頭.每個項目都有其擁有的屬性列表,并且屬性可以存在或不存在.如果不存在,服務器將假定它們為“默認”.

每個條目都用大括號括起來,并以逗號結尾:{},

該文件還包含標準的C注釋,//以及/ * * /

該項目的每個屬性都是從33個屬性池中標準化的,其中只有3個是強制性的.可以包括或不包括屬性.后端程序假定不包含的屬性為默認屬性.

有一些屬性可以是多行甚至是多屬性(如果需要的話,可以構成一個數組).

因此,該文件大致如下所示:

itemdb: (

/*

{

Multi line comment

here to explain the file

},

*/

// Here starts the items

{

Id: 500

DatabaseName: "Item_1"

Name: "Item 1"

Type: 1

Buy: 40

Weight: 10

},

{

Id: 501

DatabaseName: "Item_2"

Name: "Item 2"

Type: 1

Sell: 600

Weight: 200

Script:

},

// Here is some more items

{

Id: 637

DatabaseName: "Item_137"

Name: "Item 137"

Type: 5

Buy: 9000

Weight: 300

Trade: {

nodrop: true

notrade: true

}

Script:

do this stuff;

then this stuff;

">

},

// Note: Edited this in 2015-11-23, see below.

)

我需要一種將所有元素分解為數組以顯示給用戶的方法.數組看起來像這樣(來自上面的示例):

$itemDB = Array

(

[500] => Array

(

[DatabaseName] => Item_1

[Name] => Item 1

[Type] => 1

[Buy] => 40

[Weight] => 10

)

[501] => Array

(

[DatabaseName] => Item_2

[Name] => Item 2

[Type] => 1

[Sell] => 600

[Weight] => 200

[Script] => do stuff

)

[637] => Array

(

[DatabaseName] => Item_137

[Name] => Item 137

[Type] => 5

[Buy] => 9000

[Weight] => 300

[Trade] => array

(

[nodrop] => true

[notrade] => true

)

[Script] => do this stuff;\nthen this stuff

)

);

(因此,基本上將文件分成多維數組,文件的’Id’屬性是每個數組的鍵,文件的每個屬性是其自己的鍵/值)

我確實想出了以下代碼來將數組分成每個條目:

$ready = str_replace(array("{","}"),"|", $itemDB);

$itemDB_explode = explode("|", $ready);

但是這段代碼只會讓我半途而廢.我基本上得出這樣的數組:

[7]=> string(124) " Id: 501 DatabaseName: "Item_2" Name: "Item 2" Type: 1 Sell: 600 Weight: 200 Script: "

但是對于我的一生,我無法弄清楚如何獲得比這更進一步的信息,包括如何使數組的鍵成為Id以及每個屬性都有自己的鍵/值.

重點是向用戶顯示條目,允許他們進行編輯,然后將文件保存回去.希望我能在將其保存回本方面獲得幫助.

對于那些無疑會問的人:是的,我知道類似這樣的內容更適合SQL數據庫.問題是該文件以及讀取和解釋該文件的后端不是我寫的,我無法更改它.我只是在編寫基于Web的前端以輕松更改該文件.

預先感謝您提供的幫助.

編輯2015-11-23:

我從最初的問題中刪除了一些屬性.考慮對實際文件進行的編輯,并添加那些缺少的屬性:

{

Id: 845

DatabaseName: "Item_345"

Name: "Item 345"

Type: 3

Buy: 30000

Nouse: {

override: 30

sitting: true

}

Stack: [99, 4]

OnEquipScript:

OnUnequipScript:

do some more stuff;

this is some more stuff;

">

},

考慮一下文件中該附加塊的結果數組是什么樣的:

[845] => Array

(

[DatabaseName] => Item_345

[Name] => Item 345

[Type] => 3

[Buy] => 30000

[Nouse] => array

(

[override] => 30

[sitting] => true

)

[Stack] =>

(

[0] => 99

[1] => 4

)

[OnEquipScript] => do this stuff;

[OnUnequipScript] => do some more stuff;\nthis is some more stuff;

)

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的php 怎么解析文本,PHP解析自定义纯文本数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。