Php 我需要将文件另存为name_01,name_02

Php 我需要将文件另存为name_01,name_02,php,Php,你好,我需要将图像名称保存为name_01,name_02 但是我试了5个多小时,我还是无法摆脱这个 请检查代码并帮助我 if($typeMessage=='image'){ $responseMedia=$bot->getMessageContent($idMessage); 如果($responseMedia->Issucceed()){ //getRawBody()二进制文件 $dataBinary=$responseMedia->getRawBody();//返回二进制 //从文件头获取

你好,我需要将图像名称保存为name_01,name_02 但是我试了5个多小时,我还是无法摆脱这个 请检查代码并帮助我

if($typeMessage=='image'){
$responseMedia=$bot->getMessageContent($idMessage);
如果($responseMedia->Issucceed()){
//getRawBody()二进制文件
$dataBinary=$responseMedia->getRawBody();//返回二进制
//从文件头获取文件类型
$fileType=$responseMedia->getHeader('Content-Type');
if(preg_match('/image/',$fileType)){
列表($fileType,$ext)=分解(“/”,$fileType);
$ext=($ext=='jpeg'| |$ext=='jpg')?“jpg”:$ext;
如果(!file_存在($fileFullSavePath)){
$counter=1;
$fileNameSave='lamsam_.'$counter。
“$ext;
else if(文件_存在($fileFullSavePath)){
$counter++;
$fileNameSave='lamsam_.'$counter。
“$ext;
}
}
}
$botDataFolder='LAMSAM PAPER/';//主保存文件文件夹
$botDataUserFolder=$botDataFolder.$sourceType.$sourceId;//子文件夹=sourceId
如果(!file_存在($botDataUserFolder)){//检查是否没有文件夹sourceId
mkdir($botDataUserFolder,0777,true);
}
//路径
$fileFullSavePath=$botDataUserFolder。
“/”.$fileNameSave;
文件内容($fileFullSavePath,$dataBinary);
我期望产出

  • lamsam_01.jpg
  • lamsam_02.jpg
但实际情况只是

  • lamsam_01.jpg

首先,我们看不到任何循环,因此,
$counter
不太可能影响任何东西,除非您通过它进行循环,如下所示

您可以打开一个文件(
fopen()
),然后向其中写入(
fwrite()
)数据。将数据写入文件后,需要关闭(
fclose()
)文件:

$fp = fopen('file.txt', 'a+'); //Append mode
// $fp = fopen('file.txt', 'w'); //Write mode
fwrite($fp, $data);
fclose($fp);    
fopen()

fwrite()

fclose()

在循环中:

这将遍历所有图像,并创建所需的命名约定:

从1开始
$i
,因此
$i
应该小于或等于
$noOfFiles
以继续
循环
,显然,您可以使用不同的方法来实现相同的目标,但理想情况下,除非您正在使用
计数器对
$\u会话
进行一些巧妙的操作,或者使用一些巧妙的JavaScript有了它,我看不出你将如何增加
$counter

for($i = 1; $i <= $noOfFiles; $i++) {
    $fp = fopen('lamsam_' . $i .'.jpg', 'w');
    fwrite($fp, $data[$i]);
    fclose($fp);    
}
因此..如果您使用
$responseMedia->getRawBody()
获取图像,那么您要么希望它以数组的形式出现(如果您获取的是相同的图像,那么它似乎只获取一个图像)…或者,您也可以通过任何可用的方法循环获取所需的所有图像,并将其添加到阵列中

然后,在循环中,使用
$i
作为
$dataBinary
数组的索引,您还可以循环添加到每个文件中的图像,而不仅仅是创建10个名称不同但图像相同的文件:

for($i = 0; $i <= $num_files;) {
  $i++;
  $fp = fopen('lamsam_' . $i .'.jpg', 'w');
  fwrite($fp, $dataBinary[$i]);
  fclose($fp);
  $fp = $fileNameSave;
}

for($i=0;$i
for($i=0;$i我希望文件名输出lamsam_01.jpg lamsam_02.jpg然后将
file.txt
的名称更改为您需要的名称。或者,您可以使用
文件内容('lamsam_.$i.'.jpg',$data[$i]);
-同样在PHP中,预增量比后增量快,即使在for循环增量中也是如此(PHP没有对
进行后增量优化,返回值不使用
)@Dammeul请帮助我如何获取$noofFiles和$data,很抱歉,我是新手您正在使用计数器并递增它…您在循环什么…?
$data
是图像,或您正在保存到文件中的任何内容。$noofFiles是您尝试创建的图像文件数。
for($i = 0; $i <= $num_files;) {
  $i++;
  $fp = fopen('lamsam_' . $i .'.jpg', 'w');
  fwrite($fp, $dataBinary[$i]);
  fclose($fp);
  $fp = $fileNameSave;
}
for($i = 0; $i <= $num_files;) {
  $i++;
  $fp = fopen('lamsam_' . $i .'.jpg', 'w');
  fwrite($fp, $dataBinary);
  fclose($fp);
  $fp = $fileNameSave;
}