-1

可能重复:
帮我用 PHP 解析这个文件

我需要从文本文件中提取一些文本。假设有一个文本文件http://site.com/a.txt

该文件的内容是这样的:

var $name= 'name1';
var $age= 'age2';
var $phone= 'phonenumber';
var $a= 'asd';
var $district= 'district23';

如何在单独的 echo 中获取此文本文件(name1、age2、phonenumber、asd、district)的值。

4

5 回答 5

2

使用该file函数将文件读入数组。然后遍历数组,文件中的每一行将是数组中的另一个元素。因此,请确保您的文件在数据之间有换行符。

当然,最好的办法是在 .php 文件中准备好 PHP 代码,然后将其包含在include函数中。

于 2012-09-20T12:44:36.647 回答
1

像这样组织文本文件的内容:name1,age2,phonenumber,asd,district

并这样做:

// Get the content of your file
$content = file_get_contents('a.text');
// Set your values with this
list($name, $age, $phone, $a, $district) = explode(',', $content);

// Then feel free to echo wathever you want
echo 'Name ' . $name;
于 2012-09-20T12:50:31.670 回答
1

使用数组并对其进行编码:http ://uk.php.net/manual/en/function.json-encode.php

于 2012-09-20T12:55:18.810 回答
1

我建议使用一个类来封装你的数据......

所以想象一下有一个名为“person.php”的文件,看起来像这样......

class Person
{
    public $Name;
    public $Age;
    public $Phone;
    public $A;
    public $District;
}

然后,您可以将 person 类用作容器。

include_once('person.php');

$person = new Person();
$person->Name = 'John Doe';
$person->Age = 52;
$person->Phone= '+441234 567 890';
$person->A = 'asd';
$person->District = 'District23';

请注意,“Age”是易变的(即,如果对象存在的时间过长,则年龄会出错!)您可以通过存储出生日期然后在 Person 对象上使用 getAge() 函数来避免这种情况,从而为您提供正确的任何时间点的年龄。

Person 类是一个普通的 PHP 对象,但您可以添加添加与 Person 概念相关的行为的函数,因此 getAge() 函数将存在于 Person 类上。

最后,您可以使用 PHP 的序列化和反序列化函数将对象存储在您喜欢任何位置。代表您的对象的存储字符串如下所示:

O:6:"Person":5:{
    s:4:"Name";s:8:"John Doe";
    s:3:"Age";i:52;
    s:5:"Phone";s:15:"+441234 567 890";
    s:1:"A";s:3:"asd";
    s:8:"District";s:10:"District23";
}

以下是您如何将 序列化为$person如下所示:

$serializedPerson = serialize($person);
echo $serializedPerson;

从字符串转换回 Person 也很容易:

$serializedPerson = 'O:6:"Person":5:{s:4:"Name";s:8:"John Doe";s:3:"Age";i:52;s:5:"Phone";s:15:"+441234 567 890";s:1:"A";s:3:"asd";s:8:"District";s:10:"District23";}';

$newPerson = unserialize($serializedPerson);

echo $newPerson->Name;

概括

因此,如果您以这种序列化格式存储数据,则很容易将其直接转换为您可以使用的 PHP 对象,而无需手动解析字符串。如果需要,您可以将字符串存储在文本文件中 - 或数据存储。

于 2012-09-20T12:47:46.320 回答
0

我不会为您提供解决方案代码,而是将其分解为几个步骤。

0) 以机器可读的格式写入文件,例如姓名、年龄、电话号码

1) 逐行读取文件

2)根据您使用的分隔符划分每行,例如“,”

3) 将值读入变量

4) 回声

如果您遇到更具体的问题,请告诉我们。

于 2012-09-20T12:49:10.857 回答