首页 > 解决方案 > PHP如何从像{{Name}}这样的变量中获取数据

问题描述

<?php
$status = '{{order_number}}';
echo $status;
?>

当我回显输出值时,我有此代码,但是当我检查长度时它变为修复 16 如何检查与它的值相同的长度?

完整的 PHP 代码:

<div class="status"><i class="icon-{{status}} icon-lg" title="{{status_label}}" data-toggle="tooltip"></i></div>
<div class="order"><a data-action="show" href="#" href="#">{{order_number}}</a></div>
<div class="customer">
  {{#compare customer_id '===' 0}}<?php /* translators: woocommerce */ _e( 'Guest', 'woocommerce' ); ?>{{else}}
  <a data-action="customer" href="#" data-customer="{{customer_id}}">{{customer_name}}</a>
  {{/compare}}
</div>
<div class="note">{{#if note}}<i class="icon-note" title="{{note}}" data-toggle="tooltip"></i>{{/if}}</div>
<div class="date">{{formatDate completed_at format='MMMM Do YYYY, h:mm a'}}</div>
<div class="total">{{{money total}}}</div>
<div class="actions">
<a class="btn btn-info btn-sm" href="#" data-action="show"><?php /* translators: wordpress */ _e( 'View' ); ?></a>&nbsp;<?php
$status = '{{order_number}}';
echo $status;
?>
</div>

更新:将pastebin的完整代码添加到问题中。

标签: php

解决方案


问题

您对事物的执行方式有错误的理解。如果我没记错的话,您的代码是由 PHP 和一些 javascript 视图框架(我猜可能是 Angular)处理的。该语法{{some_name}}由 javascript 视图框架使用。它们仅在浏览器中处理。

现在,让我们回顾一下处理顺序:

  1. 您的服务器将处理所有<?php ?>内容并替换为结果。
  2. 服务器结果将被发送到浏览器。
  3. 您的视图框架将在浏览器上工作以处理该服务器结果(例如{{some_name}}标签)以提供最终的浏览器输出。

因此,服务器永远不会知道您的 javascript 将注入您的 HTML 的值。该字符串{{order_number}}将始终完全{{order_number}}在您的服务器上。它仅在浏览器上被处理成您想要的值。

建议

您应该了解如何在视图框架中执行逻辑(即"{{some_name}}"格式中的变量),而不是使用 PHP。如果您真的需要在 PHP 中执行此操作,请首先了解如何在您的 PHP 中获取您的订单号(即$some_name格式中的变量)。


推荐阅读