Php 在写入文件后使用头函数

Php 在写入文件后使用头函数,php,Php,我想在写入文件后将用户重定向到特定位置。 我知道Header函数在发送数据到客户端后无法使用。 但我的问题是fwrite是否被视为向客户端发送数据 我想做的是以下几点 <?php session_start(); $data = json_decode($_POST['data']); //print_r( $data); $DirAnnonceur = $_SESSION['id'] ."-". $_SESSION['ec']; $ini_array = parse_ini_file

我想在写入文件后将用户重定向到特定位置。 我知道Header函数在发送数据到客户端后无法使用。 但我的问题是fwrite是否被视为向客户端发送数据

我想做的是以下几点

<?php
session_start();
$data = json_decode($_POST['data']);
//print_r( $data);

$DirAnnonceur = $_SESSION['id'] ."-". $_SESSION['ec'];

$ini_array = parse_ini_file("../cc_custom.ini");
$img_path = $ini_array['img_annonceurs_path'];
$fullPath = $img_path . DIRECTORY_SEPARATOR .  $DirAnnonceur  . DIRECTORY_SEPARATOR;

$jsonPath = $fullPath . 'imgPosition.json';
//echo $img_path . DIRECTORY_SEPARATOR .  $DirAnnonceur  . DIRECTORY_SEPARATOR ;

$arr = array();
foreach($data as $cle => $element)
{
    $arr[$element] = $fullPath . $element;
}

$fp = fopen($jsonPath, 'w');
if(fwrite($fp, json_encode($arr, JSON_FORCE_OBJECT))){
    header('Location: ../admin/contact.php');
    //echo json_encode(array("state" => "IMAGE-SAVED-POSITION-OK" , 128));
}
else
    echo json_encode(array("state" => "IMAGE-SAVED-POSITION-KO" , 128));
fclose($fp);

?>
注意这个php脚本是在我的html页面中单击保存按钮后调用的


谢谢你的帮助。

这与fwrite无关。只有当没有输出到客户端时,头才会工作。任何直接或间接产生输出(如引起警告/错误)的函数都会触发已发送错误的标题。您正在写入一个文件,因此该操作不会创建输出,但如果该文件不可访问或fwrite失败,则不会创建输出。PHP可能会发出警告/错误,这些错误/警告会被输出。好的,谢谢你的解释,但这并不能帮助我理解为什么我的头重定向不起作用。我没有收到错误,因为文件是用正确的内容创建的。检查头的返回值。失败时它将为布尔值false,例如,标题已发送。我进行了此检查,如果!headers_发送的header'Location:../admin/contact.php';我可以在chrome开发控制台中看到,我得到了页面本身。我不明白的是为什么这不能重定向我…在标题后添加退出