2013-09-29 61 views
0

所以我试图定义$ picurl1,以便它使用$ pic1中的值。所以,最后我希望它是:把HTML字符串放在PHP中

<img src="./pictures/{definition of pic1}.png"> 

现在我用这个PHP代码:

$pic1 = '<script src="pic.js"></script>'; 
$picurl1 = '<img src="./pictures/' + $pic1 + '.png'">'; 

很抱歉,如果我不是很清楚。我真的不知道如何解释它。我希望你明白。

换句话说,请告诉我应该将$ picurl1更改为。

顺便说一句,脚本随机生成一个没有'.png'的随机图片名称。

在此先感谢。

+2

真的不清楚你想要做什么。这个(使用正确的连接运算符)会产生字符串'.png'“>'这是非常无效的HTML。什么是”pic1的定义“? – David

+2

连接运算符是'.',而不是'+' ' –

+1

如果脚本“随机生成的图片名称不带'.png',则无关紧要.PHP不会执行JavaScript,因此在组装HTML时,不会运行脚本输出一个随机的图片名称 – Kiruse

回答

3

对于初学者,您使用错误的运算符连接PHP中的字符串。我认为你的意思是:

$picurl1 = '<img src="./pictures/' . $pic1 . '.png'">'; 

更重要的是,什么是“pic1的定义”?您的意思是pic.js中的代码会随机选择一个文件名,并且您希望其结果成为img标记中使用的网址吗?

然后,您遇到的问题是PHP在客户端上运行JavaScript时在服务器上运行。所以你的PHP代码不能使用pic.js的结果,因为在PHP代码完成之后,只有当浏览器运行它时,它才会有结果。

所以你需要在JavaScript代码中获得客户端的结果。

pic.js如何创建该结果?也就是说,pic.js有没有功能?现在我假设有,并且我将假设这个函数被称为getFileName。 (仅用于本示例)

在包含JavaScript代码并且文档中有img标记后,可以调用该函数并将img标记的src设置为其结果。为了帮助我们识别img标签,让我们给它一个id

<img src="default.gif" id="theImage" alt="This is a dynamic image" /> 

(。我给它的src默认值,因为空值是无效的我也有它的完整性的alt值)改变其src值的函数的结果,你会做类似如下:

document.getElementById('theImage').src = getFileName(); 

请记住,这是所有客户端代码。您可以在PHP代码中使用“结果”的唯一方法是计算是在PHP中完成,而不是在JavaScript中完成。

1

您必须考虑在客户端代码(javascript,html,css,...)之前执行所有服务器端代码。所以你的代码没有任何意义,你不能在另一个更快执行的代码中嵌入未定义的代码。

如果你的js代码必须返回一些事情,所以删除PHP代码,只需使用HTML代替

0

我成功地测试了这一点:

$picName = "greenButterfly7"; //note no spaces inbetween green and butterfly 

$picurl1 = "<img src='./pictures/" . $picName . ".png'>"; 

echo $picurl1; 

或纯HTML的形式:

<img src='pictures/greenButterfly7.png'> 

或以嵌入形式(HTML内的PHP):

<img src='pictures/<?php echo $picName; ?>.png'>