字符串$unencodedData;
未打印并显示除零错误
$date = date_create();
$timestamp= date_timestamp_get($date);
$rand = mt_rand(100000,999999);
$string = "cp-string";
$unencodedData = "cp-string"/'.$timestamp.'/'.$rand.';
echo $unencodedData;
file_put_contents('./public/image/share/image.png',file_get_contents('$unencodedData'));
不知道代码在哪里出错..在声明$ unencodedData时,hinking可能是错误的;
答案 0 :(得分:1)
您可以尝试声明$unencodeData
,如此
$unencodeData = 'cp-string/'.$timestamp.'/'.$rand;
或者,如果您尝试使用$string
var,那么它将是
$unencodeData = $string.'/'.$timestamp.'/'.$rand;
答案 1 :(得分:1)
看起来你正试图划分字符串..是unncodedData应该是一个文件?如果是这样,请尝试:
Node
或
$unencodedData = $string . '/' . $timestamp . '/' . $rand";
答案 2 :(得分:1)
这是一个简单的错配匹配报价对,我认为你想要的是:
$unencodedData = 'cp-string/'.$timestamp.'/'.$rand;
另请注意,如果您不关心一点开销,您还可以使用以下内容使您的代码更具可读性:
$unencodedData = "cp-string/$timestamp/$rand"
;
答案 3 :(得分:1)
您必须区分"..."
和'...'
。
'...'
仅表示基本字符串,一些文本。它没有什么特别之处。没有变量,没有换行符号(\n
)等等。
"..."
表示php必须仔细查看它。在".."
内部可能会有像"My name is $name."
这样的变量,php会替换所述变量的内容。
如果您在"
内使用'
,反之亦然,则会成为普通字符串。
您可以执行"I don't know"
。
如果你在"
内使用"..."
,你必须逃避它。像这样"and then he said \"I don't know $name\""
。同样适用于'...'
。
所以你可以做的是:
$unencodedData = "cp-string/$timestamp/$rand.";
或
$unencodedData = 'cp-string/'.$timestamp.'/'.$rand.'.';
(仅用于教育目的:你甚至可以做以下事情:
$unencodedData = 'cp-string/'.$timestamp."/$rand.";
)
如果您不需要解析字符串中的任何变量或\n
,只需坚持''
即可。对于php解释器,它的解析速度要快一点。
不是100%确定你的目标是什么,但这看起来像我认为你想要实现的目标:
// -- setup ----------------
$path = './public/image/share/image.png';
$randMin = 100000;
$randMax = 999999
// -- build that string ----
$timestamp= date_timestamp_get(date_create());
$rand = mt_rand($randMin,$randMax);
$unencodedData = "cp-string/$timestamp/$rand.";
// prints something like: cp-string/19245436/123456.
// -- print and save --------
echo $unencodedData;
file_put_contents($path,file_get_contents($unencodedData));