【问题标题】:PHP explode() puts everything into first array elementPHP explode() 将所有内容放入第一个数组元素
【发布时间】:2015-02-23 02:39:43
【问题描述】:

PHP explode() 函数将所有内容放入第一个数组变量中。我已经按照以下示例进行操作:explode

该文件包含以下字符串:

My CV_98KB_PDF(Adobe Reader)_YES - Use this form: Contact Form_/docs/CV.pdf

我希望它将从文件中读取的字符串拆分为单独的数组元素,但它只将它们拆分为第一个。

$doclist = "./docs/documentlist.txt";
$filestr = readfile($doclist);
$docProp = explode("_", $filestr);

echo $docProp[0];
echo $docProp[1];

$docProp[0] 包含完整的字符串,而不是 My CV。为什么会这样?

亲切的问候。

【问题讨论】:

  • 我希望它将所有内容放入一个数组中 - 所以$docProp[0] = My CV$docProp[1] = 98KB 等等。
  • 请展示documentlist.txt上写的内容只是一个示例
  • 您的意思是改用file_get_contents() 吗?

标签: php arrays file fopen explode


【解决方案1】:

readfile() 将文件输出到浏览器并返回字节数,因此您在页面上看到的是readfile() 的结果,而不是echo $docProp[0];。你需要做的是使用file_get_contents():

$doclist = "./docs/documentlist.txt";
$filestr = file_get_contents($doclist);
$docProp = explode("_", $filestr);

echo $docProp[0];
echo $docProp[1];

【讨论】:

    【解决方案2】:

    设法解决了这个问题:

    $doclist = "./docs/documentlist.txt";
    $docfile = fopen($doclist, "r") or die("file error!");
    
    while (!feof($docfile)) {
    
        $docProp = explode('_', fgets($docfile));
    
    };
    fclose($docfile);
    

    我没有使用readfile(),而是使用fopenfeoffgets 来读取文件并将其分解。

    亲切的问候。

    【讨论】:

      【解决方案3】:

      你的字符串由'/'组成,因此我们应该爆炸

      $doclist = "./docs/documentlist.txt";
      $filestr = readfile($doclist);
      $docProp = explode("/", $filestr);
      
      echo $docProp[0];
      echo $docProp[1];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-20
        • 1970-01-01
        • 2015-03-25
        相关资源
        最近更新 更多