Php 我需要将文件另存为name_01,name_02
你好,我需要将图像名称保存为name_01,name_02 但是我试了5个多小时,我还是无法摆脱这个 请检查代码并帮助我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();//返回二进制 //从文件头获取
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;$ifor($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;
}