解析ini文件,其中某些值包含json编码的字符串

问题描述 投票:0回答:2

我确信这个问题已经得到解答,但我不知道如何研究它。这是我的绳子

[value1, value2, value3, ..., valueN]

我想知道是否有一个本机函数可以将其转换为一个简单的数组

array('value1', 'value2', 'value3', ..., 'valueN');

请明确一点,我想知道是否已经写了一些东西可以做到这一点,即除了

strpos('[')
implode(',')
之外的另一种方法。


编辑

抱歉,我没有太关注这个问题,因为我正在不停地从事这个需要我问这个问题的项目。关于最后一条评论,我想在这里补充一点,这不是问题,而是它是如何计划的。我决定让数组看起来与 JSON 数组一模一样,因为我想要一个简单的函数来撤消它。这是我的 INI 文件。

; Default Pages
user = all
wordpress = all    
home/welcome = visitor
home/customer = visitor
home/new = visitor
home/signup = visitor

; User
user/panel = '["user", "worker", "customer", "company", "staff", "ruler", "gifter", "support", "salesman", "scorer", "recorder", "reporter", "deliverer", "manager", "admin"]'
user/profile = user
user/password = user
user/support = user

; Reporter
user/report = reporter

; User/Customer
user/customer/voucher = customer
user/customer/history = customer
user/customer/ticket = customer
user/customer/profiling = customer

; User/Staff
user/staff/customer = recorder

; User/Manager
user/staff/score = scorer
user/staff/voucher = deliverer

user/manager/shop = '["salesman", "manager"]'

user/manager/staff = manager
user/manager/ticket = manager
php arrays json ini text-parsing
2个回答
1
投票

您在评论中说该字符串来自

parse_ini_file
函数调用。

第一个字符串不是 parse_ini_file 调用返回的内容,因此您必须执行其他操作来获取该输入,但这根本没有必要。

要获取您在问题中提出的问题,您应该执行以下操作:

$ini_array = parse_ini_file($ini_path); //This is an associative array
//If necessary, get only the key=>value pairs you need
//otherwise, just keep going
$ini_values = array_values($ini_array); //this is now a 0-based array

$ini_values
现在完全包含您所要求的内容。


0
投票

implode() 用于简单的事情,或 preg_split() 用于正则表达式。

http://php.net/function.implode

http://php.net/manual/en/function.preg-split.php

我曾经厌倦了学习正则表达式,但是这个网站非常有帮助,它直观地显示了你的字符串将做什么,并且有备忘单和示例。

https://www.debuggex.com/

© www.soinside.com 2019 - 2024. All rights reserved.