-1

我正在学习 Smarty,我只想显示一个人的名字和姓氏......是否有可能或者更好地使用 php?非常感谢

4

3 回答 3

2

如果您真的想在 Smarty 中执行此操作,您可以执行此操作。

{assign var="newname" value=" "|explode:$name}

{$newname[0]} {$newname[6]}

更新

或者..我要做的是用 PHP 来做。然后将其分配给 smarty。

<?php
$arr = explode(" ", $name);
$fullname = $arr[0]." ".$arr[6];

$smarty->assign("fullname",$fullname);

?>

然后{$fullname}在您的模板中使用。

于 2013-06-20T14:28:54.157 回答
2

您可能需要在页面上使用 PHP 作为修饰符来爆炸字符串数据......

{" "|explode:$name}

或试试这个...

{assign var=nameparts value=" "|explode:$name} 

试一试...但老实说,在 $name 变量加载到 HTML 页面之前,您最好从 PHP 源代码中进行“爆炸”操作。

更新 为了安全起见,您可以使用 $name,您可以设置一个条件...

{assign var=nameparts value=" "|explode:$name}

{if $nameparts[6] == 'Mendonça'}
  <p>then my name is {nameparts[0]} {nameparts[6]}.</p>   
{else}
  <p>we are dealing with a different name </p>
{/if}

..所有在使用 Smarty 的 HTML 代码中。

于 2013-06-20T14:23:03.410 回答
0

你认为这个解决方案可行吗?从我的测试来看,它正在工作:

{assign var="newname" value=" "|explode:$name}
{assign var=names_count value=$newname|@count} 
{if $names_count>2}
   {assign var=position value=$names_count-1}
   {$newname[0]} {$newname[$position]}
{else}
   {$name}
{/if}
于 2013-06-20T15:06:07.337 回答