Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. System.php

function System::cat

Concatenate files

Usage: 1) $var = System::cat('sample.txt test.txt'); 2) System::cat('sample.txt test.txt > final.txt'); 3) System::cat('sample.txt test.txt >> final.txt');

Note: as the class use fopen, urls should work also

Parameters

string $args the arguments:

Return value

boolean true on success

File

vendor/pear/pear-core-minimal/src/System.php, line 323

Class

System
System offers cross platform compatible system functions

Code

public static function &cat($args) {
    $ret = null;
    $files = array();
    if (!is_array($args)) {
        $args = preg_split('/\\s+/', $args, -1, PREG_SPLIT_NO_EMPTY);
    }
    $count_args = count($args);
    for ($i = 0; $i < $count_args; $i++) {
        if ($args[$i] == '>') {
            $mode = 'wb';
            $outputfile = $args[$i + 1];
            break;
        }
        elseif ($args[$i] == '>>') {
            $mode = 'ab+';
            $outputfile = $args[$i + 1];
            break;
        }
        else {
            $files[] = $args[$i];
        }
    }
    $outputfd = false;
    if (isset($mode)) {
        if (!($outputfd = fopen($outputfile, $mode))) {
            $err = System::raiseError("Could not open {$outputfile}");
            return $err;
        }
        $ret = true;
    }
    foreach ($files as $file) {
        if (!($fd = fopen($file, 'r'))) {
            System::raiseError("Could not open {$file}");
            continue;
        }
        while ($cont = fread($fd, 2048)) {
            if (is_resource($outputfd)) {
                fwrite($outputfd, $cont);
            }
            else {
                $ret .= $cont;
            }
        }
        fclose($fd);
    }
    if (is_resource($outputfd)) {
        fclose($outputfd);
    }
    return $ret;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal