我有一批使用php变量构建表的代码。
我要做的是捕获flight.flightnum flight.flightnum的前三个字符,例如返回BAW111,我想要BAW位。容易吗?好吧,我现在是PHP专家,但使用substr根本不适合我。代码如下:
<script type="text/html" id="acars_map_row">
<tr class="<%=flight.trclass%>">
<td><a href="<?php echo url('/profile/view');?>/<%=flight.pilotid%>"><%=flight.pilotid%> - <%=flight.pilotname%></a></td>
<td><%=flight.flightnum%></td>
<td><%=flight.depicao%></td>
<td><%=flight.arricao%></td>
<td><%=flight.phasedetail%></td>
<td><%=flight.alt%></td>
<td><%=flight.gs%></td>
<td><%=flight.distremaining%> <?php echo Config::Get('UNITS');?> / <%=flight.timeremaining%></td>
</tr>
</script>
我之前从未使用过这些类型的变量,我尝试过:
<?php $result = "<%=flight.flightnum%>"; echo $result ?> // = BAW111
<?php $result = "<%=flight.flightnum%>"; echo substr($result, 0 ,3) ?> // gives an error and nothing is returned.
我确信它显而易见,但我的想法很明显。
答案 0 :(得分:1)
在
<%=flight.flightnum%>
是客户端处理的,所以你的:
echo substr($result, 0 ,3)
只是:
<%=
进入你的来源(例如前3个字符)。这打破了页面生成,因为标记无效。
在运行<%=stuff%>
处理之后,您需要在客户端解决此问题。
此外,var_dump
输出有关变量的信息。它将显示其值,类型和长度。在这个例子中,21是<%=flight.flightnum%>
的长度..这也被输出但是运行<%=
s(我认为ASP)将其转换为航班值。
答案 1 :(得分:0)
您需要将变量包装在PHP标记中,以便对它们进行解析。
E.g。
<td><?php <%=flight.flightnumber%> ?></td>
它们很可能像代码当前一样显示为HTML标记。
...
'$ result'可能包含对象的引用。首先尝试用引号括起来。
<?php
$result = "<%=flight.flightnum%>";
echo substr($result, 0 ,3)
?>