将数组值转换为字符串,可写入从 $_GET 函数传入的文本文件

converting array value to string writable to text file incoming from $_GET function

无论我怎么尝试都没有解决我的问题 一个 php 文件接收带有定义变量的内容

<?php
$user_id=$_GET["user_id"];
$platform=$_GET["platform"];
$devicemodel=$_GET["devicemodel"];
$deviceuuid=$_GET["deviceuuid"];

--------
and then

$content =$content. " ".$user_id;
$content =$content. " ".$platform;
$content =$content. " ".$devicemodel;
$content =$content. " ".$deviceuuid;


$file = "activities.log"; 
file_put_contents($file, $content);


?>

当我看到活动内容时,我总是看到 数组()数组()数组()数组()

没关系,我尝试通过使用将数组类型更改为字符串或文本 *内爆,var_export,print_r函数

我总是看到 Array()Array()Array()Array() 写在创建的日志文件中。 当我写 echo $content;好像还不错。

我错过了什么?有没有人遇到同样的问题?

提前致谢。

编辑: 您需要向我们提供您使用代码的方法,如果是在表单中,或者通过 href 方法。

但是,我在下面给出的答案只是部分正确。其余的将取决于您向我们提供您的使用方式。

否则,我将删除此答案。


原回答

你每次都在不断地覆盖 $content =$content

因此,您需要连接它 $content .=$content 但不是第一个。

这是我测试过的,并且成功了:

<?php

$_GET["user_id"] = "ID";
$_GET["platform"] = "Platform";
$_GET["devicemodel"] = "Model";
$_GET["deviceuuid"] = "UUID";

$user_id= $_GET["user_id"];
$platform= $_GET["platform"];
$devicemodel= $_GET["devicemodel"];
$deviceuuid= $_GET["deviceuuid"];

$content =$content. " ".$user_id;
$content .=$content. " ".$platform;
$content .=$content. " ".$devicemodel;
$content .=$content. " ".$deviceuuid;

$file = "activities.log"; 
file_put_contents($file, $content);

?>

您可能还想在每行写入后添加 \n,否则它将变成一长行,如果这是您想要的结果的话。

编辑:

根据 Ghost 在评论中所说的,使用:

$content = "$user_id $platform $devicemodel $deviceuuid";

而不是所有那些额外的变量。

这对我来说很好。试试这个,看看你是否还有同样的问题:

<?php

$_GET["user_id"] = "user_id";
$_GET["platform"] = "platform";;
$_GET["devicemodel"] = "device_model";;
$_GET["deviceuuid"] = "device_uuid";;

$user_id = $_GET["user_id"];
$platform = $_GET["platform"];
$devicemodel = $_GET["devicemodel"];
$deviceuuid = $_GET["deviceuuid"];

/*
and then
*/


$content = $content. " ".$user_id;
$content .= " ".$platform;
$content .= " ".$devicemodel;
$content .= " ".$deviceuuid;


$file = "activities.log"; 
file_put_contents($file, $content);
?>

如果这对您有效,那么问题出在您的代码上。如果这对您不起作用,那就是您的 PHP 安装。

编辑:Fred 比我还早!

其实我意识到只使用json_encode函数就解决了我的问题并开始将数组json数据转为字符串格式file_put_content 有效。 在这里,您可以为我提供完整的工作代码。顺便说一句,使用 $content=$content 行连接没有任何问题。"" 它仍然有效。

<?php 

$content ="--başlık--".json_encode($_GET["title"]);
$emails="--email--".json_encode($_GET["user_email"]);
$tarih="--tarih--".json_encode($_GET["tarih"]);
$categori= "--kategori--".json_encode($_GET["kategori"]);
$picturename="--picturename--".json_encode($_GET["picturename"]);
$username="--username--".json_encode($_GET["username"]);
$user_id="--userid--".json_encode($_GET["user_id"]);
$platform="--platform--".json_encode($_GET["platform"]);
$devicemodel="--devicemodel--".json_encode($_GET["devicemodel"]);
$deviceuuid="--deviceuuid--".json_encode($_GET["deviceuuid"]);


$content =$content." ".$tarih;
$content =$content." ".$emails;
$content =$content. " ".$user_id;
$content =$content. " ".$username;
$content =$content. " ".$categori;
$content =$content. " ".$platform;
$content =$content. " ".$devicemodel;
$content =$content. " ".$deviceuuid;
$content =$content. " ".$picturenam;
$file = "/*******/public_html/testupload/logs/logs-tarih-".date("Ymd").".log"; 

$content ="date---".date("F j, Y, g:i a")."--".$content."\n";
//file_put_contents($file, $content, FILE_APPEND);

$fp=fopen($file,"a");
fputs($fp,$content);
fclose($fp);