2017-01-02 182 views
0

我有一批使用php变量建立表格的代码。php substr不能在变量上工作

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

你有什么错误? – Mureinik

+0

@Mureinik它根本没有返回任何行,只是一张空白表。 – CloudSurferUK

+0

'给出一个错误... ...什么错误? var_dump($ result);'返回什么? – chris85

回答

1

<%=flight.flightnum%> 

是处理的客户端侧,以便你:

echo substr($result, 0 ,3) 

只是把:

<%= 

到源(例如,前3个字符) 。这是打破页面生成,因为标记是无效的。

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

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

0

您需要将变量包装在PHP标记中,以便对它们进行分析。

E.g.

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

它们很可能出现在代码当前的HTML标记中。

...

'$ result'很可能包含对该对象的引用。尝试首先用引号将它包装起来。

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

嗨@jbes,我的问题不好,它是用qoutes包裹的。 – CloudSurferUK