php substr 不处理变量

php substr not working on variable

我有一批使用 php 变量构建 table 的代码。

我想做的是捕获 flight.flightnum flight.flightnum returns BAW111 的前 3 个字符,我想要 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.

我确定这很明显,但我没有想法。

您需要将变量包装在 PHP 标记中以便对其进行解析。

例如

<td><?php <%=flight.flightnumber%> ?></td>

它们可能会像当前代码一样显示为 HTML 标签。

...

´$result´ 可能包含对该对象的引用。先尝试用引号括起来。

<?php
$result = "<%=flight.flightnum%>";
echo substr($result, 0 ,3)
?>

<%=flight.flightnum%>

在客户端进行处理,因此您的:

echo substr($result, 0 ,3)

正在投放:

<%=

进入您的来源(例如前 3 个字符)。这会破坏页面生成,因为标记无效。

在运行 <%=stuff%> 处理之后,您需要在客户端解决此问题。

此外,var_dump 输出有关变量的信息。它将显示其值、类型和长度。本例中的 21 是 <%=flight.flightnum%> 的长度。这也被输出了,但是无论 运行 是什么,<%=s(我认为 ASP)都将其转换为飞行值.