Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将fortran中带有Err说明符的OPEN函数转换为PHP中的fopen函数_Php_Fopen_Goto_Fortran90 - Fatal编程技术网

将fortran中带有Err说明符的OPEN函数转换为PHP中的fopen函数

将fortran中带有Err说明符的OPEN函数转换为PHP中的fopen函数,php,fopen,goto,fortran90,Php,Fopen,Goto,Fortran90,我需要为php中的fortran行找到一个等效表达式: fortran代码: 10 OPEN(UNIT=10,FILE='TEST.OUT',STATUS='NEW', ERR=9001) GOTO 11 9001 OPEN(UNIT=10,FILE='TEST.OUT') CLOSE(10,STATUS='DELETE') OPEN(UNIT=2,FILE='fort2') CLOSE(2,STATUS='DELETE') G

我需要为php中的fortran行找到一个等效表达式: fortran代码:

10    OPEN(UNIT=10,FILE='TEST.OUT',STATUS='NEW', ERR=9001)
      GOTO 11
9001  OPEN(UNIT=10,FILE='TEST.OUT')
      CLOSE(10,STATUS='DELETE')
      OPEN(UNIT=2,FILE='fort2')
      CLOSE(2,STATUS='DELETE')
      GOTO 10
11    OPEN(UNIT=7,FILE='TEST.SUM',STATUS='NEW')
我想把这段代码转换成php代码。我想使用fopen函数,但我不知道如何使其跳转到第9001行以删除旧文件(如果有任何旧文件)。
非常感谢您的帮助。

我不知道Fortran代码到底在做什么,但听起来您希望这样:

$fh = fopen('TEST.OUT', 'w');
请注意
'w'
模式的说明:

只供写作使用;将文件指针放在文件的开头,并将文件截断为零长度。如果文件不存在,请尝试创建它

否则可能:

do {
    $fh = @fopen('TEST.OUT', 'x');
    if (!$fh) {
        unlink('TEST.OUT');
        unlink('fort2');
    }
} while (!$fh);
'x'
:创建和打开仅用于编写;将文件指针放在文件的开头。如果文件已经存在,则fopen()调用将失败,返回FALSE并生成级别为E_警告的错误。如果文件不存在,请尝试创建它

不过,您应该注意不要进入无限循环

您也可以自己进行这些检查:

if (file_exists('TEST.OUT')) {
    unlink('TEST.OUT');
    unlink('fort2');
}

我不知道Fortran代码到底在做什么,但听起来您希望这样:

$fh = fopen('TEST.OUT', 'w');
请注意
'w'
模式的说明:

只供写作使用;将文件指针放在文件的开头,并将文件截断为零长度。如果文件不存在,请尝试创建它

否则可能:

do {
    $fh = @fopen('TEST.OUT', 'x');
    if (!$fh) {
        unlink('TEST.OUT');
        unlink('fort2');
    }
} while (!$fh);
'x'
:创建和打开仅用于编写;将文件指针放在文件的开头。如果文件已经存在,则fopen()调用将失败,返回FALSE并生成级别为E_警告的错误。如果文件不存在,请尝试创建它

不过,您应该注意不要进入无限循环

您也可以自己进行这些检查:

if (file_exists('TEST.OUT')) {
    unlink('TEST.OUT');
    unlink('fort2');
}

你能用英语描述一下这个代码应该做什么吗?你想打开一个文件,但是如果它已经存在,你想删除旧文件,然后打开一个新文件?你能用英语描述一下这个代码应该做什么吗?您想打开一个文件,但如果它已经存在,您想删除旧文件,然后打开一个新文件?非常感谢!do-while循环确实完成了fortran代码的功能。非常感谢deceze!do-while循环确实完成了fortran代码的功能。