首先我要说的是,我对PHP的了解最多,所以我不确定我所尝试的是否正确。
基本上,我需要PHP根据变量(在本例中为语言)运行特定脚本。根据我在网上找到的内容,这需要使用switch语句,但它似乎无法正常运行。下面是代码的开头
<?php
$lang = "en-US";
switch ($lang) {
case "en-US":
<script type="text/javascript">
(function() {
var se = document.createElement('script'); se.type = 'text/javascript'; se.async = true;
se.src = '//storage.googleapis.com/code.rival.com/js/3ca9-4824-43d0-81ec-0c04fb80901b.js';
var done = false;
se.onload = se.onreadystatechange = function() {
if (!done&&(!this.readyState||this.readyState==='loaded'||this.readyState==='complete')) {
done = true;
}
};
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(se, s);
})();
</script>
;
break;
case "de-DE":
<script type="text/javascript">
(function() {
var se = document.createElement('script'); se.type = 'text/javascript'; se.async = true;
se.src = '//storage.googleapis.com/code.rival.com/js/d8d2-9653-427d-bcb6-13e135d6195e.js';
var done = false;
se.onload = se.onreadystatechange = function() {
if (!done&&(!this.readyState||this.readyState==='loaded'||this.readyState==='complete')) {
done = true;
}
};
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(se, s);
})();
</script>
;
break;
还有更多的代码,但我不想在这里放置一堵代码。最后的默认值使用与&#34; case&#34; en-US&#34;&#34;相同的JavaScript。
我希望这个问题有道理。
答案 0 :(得分:1)
你不能混合使用javascript和php。如果你需要输出javascript,你应该echo
或者离开php。
另外,我不确定是否存在更多差异,但如果它只是脚本的名称,则可以使用数组删除所有重复的javascript。
例如:
<?php
$lang = "en-US";
// Store all combinations
$languageScripts = [
'en-US' => '3ca9-4824-43d0-81ec-0c04fb80901b.js',
'de-DE' => 'd8d2-9653-427d-bcb6-13e135d6195e.js',
];
// Output the javascript
?>
<script type="text/javascript">
(function() {
var se = document.createElement('script'); se.type = 'text/javascript'; se.async = true;
// Here you add the script you want to run:
se.src = '//storage.googleapis.com/code.rival.com/js/<?php echo $languageScripts[$lang]; ?>';
var done = false;
se.onload = se.onreadystatechange = function() {
if (!done&&(!this.readyState||this.readyState==='loaded'||this.readyState==='complete')) {
done = true;
}
};
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(se, s);
})();
</script>
<?php
// continue with your php script