php substr不工作变量

时间:2017-01-02 15:48:00

标签: php substr

我有一批使用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.

我确信它显而易见,但我的想法很明显。

2 个答案:

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