PHP.mk документација

tmpfile

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.tmpfile.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.tmpfile.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
tmpfile

Референца за `function.tmpfile.php` со подобрена типографија и навигација.

function.tmpfile.php

tmpfile

(PHP 4, PHP 5, PHP 7, PHP 8)

tmpfileКреира привремена датотека

= NULL

tmpfile(): resource|false

Креира привремена датотека со уникатно име во режим за читање-запишување-бинарно (w+b) и враќа рачка за датотека.

Датотеката автоматски се отстранува кога ќе се затвори (на пример, со повикување fclose(), или кога нема преостанати референци за рачката на датотеката вратена од tmpfile()), или кога ќе заврши скриптата.

Безбедност: стандардниот сет на знаци

Ако скриптата заврши неочекувано, привремената датотека можеби нема да биде избришана.

Параметри

Оваа функција нема параметри.

Вратени вредности

Враќа рачка за датотека, слична на онаа вратена од fopen(), за новата датотека или false при неуспех.

Примери

Пример #1 tmpfile() example

<?php
$temp
= tmpfile();
fwrite($temp, "writing to tempfile");
fseek($temp, 0);
echo
fread($temp, 1024);
fclose($temp); // this removes the file
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

writing to tempfile

Види Исто така

  • tempnam() - Создава привремена датотека
  • sys_get_temp_dir() - Враќа патека на директориум што се користи за привремени датотеки

Белешки од корисници 6 белешки

bishop
пред 7 години
To get the underlying file path of a tmpfile file pointer:

<?php
$file = tmpfile();
$path = stream_get_meta_data($file)['uri']; // eg: /tmp/phpFx0513a
chris [at] pureformsolutions [dot] com
20 години пред
I found this function useful when uploading a file through FTP. One of the files I was uploading was input from a textarea on the previous page, so really there was no "file" to upload, this solved the problem nicely:

<?php
    # Upload setup.inc
    $fSetup = tmpfile();
    fwrite($fSetup,$setup);
    fseek($fSetup,0);
    if (!ftp_fput($ftp,"inc/setup.inc",$fSetup,FTP_ASCII)) {
        echo "<br /><i>Setup file NOT inserted</i><br /><br />";
    }
    fclose($fSetup);
?>

The $setup variable is the contents of the textarea.

And I'm not sure if you need the fseek($temp,0); in there either, just leave it unless you know it doesn't effect it.
[email protected]
пред 6 години
at least on Windows 10 with php 7.3.7, and Debian Linux with php 7.4.2,

the mode is not (as the documentation states) 'w+' , it is 'w+b'

(an important distinction when working on Windows systems)
Анонимен
пред 9 години
Since this function may not be working in some environments, here is a simple workaround:

function temporaryFile($name, $content)
{
    $file = DIRECTORY_SEPARATOR .
            trim(sys_get_temp_dir(), DIRECTORY_SEPARATOR) .
            DIRECTORY_SEPARATOR .
            ltrim($name, DIRECTORY_SEPARATOR);

    file_put_contents($file, $content);

    register_shutdown_function(function() use($file) {
        unlink($file);
    });

    return $file;
}
elm at gmail dot nospamplease dot com
пред 6 години
To get tmpfile contents:
<?php
  $tmpfile = tmpfile();
  $tmpfile_path = stream_get_meta_data($tmpfile)['uri'];
  // ... write to tmpfile ...
  $tmpfile_content = file_get_contents($tmpfile_path);
?>

Perhaps not the best way for production code, but good enough for logging or a quick var_dump() debug run.
oremanj at gmail dot com
пред 18 години
No, the fseek() is necessary - after writing to the file, the file pointer (I'll use "file pointer" to refer to the current position in the file, the thing you change with fseek()) is at the end of the file, and reading at the end of the file gives you EOF right away, which manifests itself as an empty upload.

Where you might be getting confused is in some systems' requirement that one seek or flush between reading and writing the same file.  fflush() satisfies that prerequisite, but it doesn't do anything about the file pointer, and in this case the file pointer needs moving.

-- Josh
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.