javascript - 服务器上出现意外的 T_STRING 错误,但本地主机上没有

标签 javascript php parsing

因此,在我的本地主机上,我的网站运行良好,但是当我在工作场所的服务器上运行它(它有 PHP 5.3.3)时,我不断收到意外的 T_STRING 错误。 我已将问题归结为一个函数:exportXML(当我删除此函数时,网站正在运行)

有什么想法吗? 我有点确定我的代码是正确的..

Error:
Parse error: syntax error, unexpected T_STRING in /opt/www-abba/paintingtool/index.php on line 427 

仅供引用,427 号线是这个:
window.open("data:text/xml;charset=utf-8,"+XML);

代码(是的,这是 .php 文件中的 JavaScript):

function exportXML(){
            var keys = Object.keys(jSelectedStation);
            //Trim all values
            for (var i = 0; i < keys.length; i++){
                if(jSelectedStation[keys[i]] !=null)
                {
                    jSelectedStation[keys[i]] = jSelectedStation[keys[i]].trim();
                }
                else
                {
                    jSelectedStation[keys[i]] = "";
                }
            }

            //STATION XML
            XML="<station stationNr='"+jSelectedStation.STATNAM+"'><definitionstat><admtyp>"+jSelectedStation.ADMTYP+"</admtyp><responsible>"+jSelectedStation.RESPONSIBLE+"</responsible><bildnam>"+jSelectedStation.BILDNAM+"</bildnam><stattyp>"+jSelectedStation.STATTYP+"</stattyp><stattel>"+jSelectedStation.STATTEL+"</stattel><statnr>"+jSelectedStation.STATNR+"</statnr><zonenr>"+jSelectedStation.ZONENR+"</zonenr><stattext>"+jSelectedStation.STATTEXT+"</stattext><xcoordinate>"+jSelectedStation.XCOORDINATE+"</xcoordinate><ycoordinate>"+jSelectedStation.YCOORDINATE+"</ycoordinate><refresh>"+jSelectedStation.REFRESH+"</refresh><groupid>"+jSelectedStation.GROUPID+"</groupid><position>"+jSelectedStation.POSITION+"</position><extra1>"+jSelectedStation.EXTRA1+"+</extra1><extra2>"+jSelectedStation.EXTRA2+"</extra2><extra3>"+jSelectedStation.EXTRA3+"</extra3><quittype>"+jSelectedStation.QUITTYPE+"</quittype><aliaslist><alias type='imelda'>"+jSelectedStation.IMELDA+"</alias></aliaslist><statcfg>"+jSelectedStation.STATCFG+"</statcfg></definitionstat><logic></logic><logicf></logicf><devices>";

            var keys = Object.keys(racks);
            for (var i = 1; i < keys.length; i++) //For all elements in Racks, print XML line
            { //1 to skip EMPTY
                dev = racks[keys[i]];
                if(dev.punkt[0] != undefined)
                {
                    currKrt=dev.punkt[0].y;
                }
                else
                {
                    console.log(dev);
                }
                XML+="<device statdev='"+keys[i]+"'><definitiondev><dvtyp>"+dev.type+"</dvtyp><bildnam>"+dev.bildnam+"</bildnam><responsible>"+dev.responsible+"</responsible><text>"+dev.text+"</text>";
                    if(dev.type == "I" || dev.type == "A")
                    {
                        XML+="<i_plaus_min>"+dev.extraProp[0]+"</i_plaus_min><i_plaus_max>"+dev.extraProp[1]+"</i_plaus_max><i_ala_min>"+dev.extraProp[2]+"</i_ala_min><i_ala_max>"+dev.extraProp[3]+"</i_ala_max><i_reference>"+dev.extraProp[4]+"</i_reference>";
                    }
                    else
                    {
                        XML+="<i_plaus_min>0</i_plaus_min><i_plaus_max>0</i_plaus_max><i_ala_min>0</i_ala_min><i_ala_max>0</i_ala_max><i_reference>0</i_reference>";
                    }
                XML+="<record>"+dev.record+"</record><extratext></extratext><quittype>M</quittype><punkt><kaartdev plaats='"+currKrt.substring(0,currKrt.indexOf(" "))+"'>";
                devpkt = 1;
                    for (var x=0; x < dev.punkt.length; x++)
                    {
                    if(dev.punkt[x] != undefined)
                        {
                        if(dev.punkt[x].y != currKrt)
                        {
                            currKrt = dev.punkt[x].y;
                            XML+="</kaartdev><kaartdev plaats='"+currKrt.substring(0,currKrt.indexOf(" "))+"'>";
                        }
                        //console.log("["+dev.punkt[x].y.substring(dev.punkt[x].y.indexOf(" ")+1,dev.punkt[x].y.length)+"]");
                        XML+="<devpkt id='"+devpkt+"'><pkttyp>"+dev.punkt[x].y.substring(dev.punkt[x].y.indexOf(" ")+1,dev.punkt[x].y.length)+"</pkttyp><pktcons>100</pktcons><bitnrk>"+dev.punkt[x].x+"</bitnrk><bitstatus>0</bitstatus></devpkt>";
                        devpkt++;
                        // if(devpkt>16){alert("More then 16 pkts, THIS IS MADNESS");throw "Stopping execution because not all punkts are defined";}
                        }
                    else
                        {
                            alert("Not all punkt for " + keys[i] + " are defined. \nPlease define punkt " + (x+1));
                            throw "Stopping execution because not all punkts are defined";
                        }
                    }
                XML+="</kaartdev></punkt></definitiondev><refdev refnam='";
                // Refdev substring
                if(dev.refdev.indexOf("-") > -1)
                {
                    XML += dev.refdev.substring(0,dev.refdev.indexOf("-")) + "'/></device>";
                }
                else
                {
                    XML += dev.refdev+"'/></device>";
                }
            }
            XML += "</devices><iodef></iodef></station>";
            window.open("data:text/xml;charset=utf-8,<?xml version='1.0' encoding='UTF-8'?>"+XML);
            // window.open("data:text/xml;charset=utf-8,<?xml version='1.0' encoding='UTF-8'?>"+XML.innerHTML,"ABBA XML","width=800,height=600");
            }

最佳答案

也许你有short_open_tag = On在服务器上,所以 <?xml被解析为 php 代码开始。

设置short_open_tag = Off通过 php.ini 或 .htaccess。

关于javascript - 服务器上出现意外的 T_STRING 错误,但本地主机上没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20517036/

相关文章:

javascript - IE8无法计算Math.ceil()

php - MySQL 按小时计算 DATETIME 条目

json - Golang解析复杂的json

C 解析带换行符的逗号分隔值

javascript - 空字段默认为 "0"

javascript - 如何将 X 域设置为嵌套值

php - 使用 "defined"ORM :s in PHP? 的优势

php - 复选框的 CodeIgniter 表单验证规则

php - 如何解析 m3u8 并获取不同的比特率子 m3u8 url?

javascript - 在函数内部转换 ""中的 null