字符串未打印并显示除以零的错误

时间:2016-02-05 20:36:15

标签: php

字符串$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可能是错误的;

4 个答案:

答案 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));