困惑使用OR,str_replace,数组还是什么?

时间:2018-03-13 08:57:07

标签: php html html5 url

我有一个代码,可以在Alabama中找到Michigan$l字样并返回if条件:

<?php if (trim($l) == "Alabama" || trim($l) == "Michigan"): ?>
   <a href="http://www.example.com/"><?= $l ?></a>
 <?php else: ?>
   <a href="http://www.example.com/"></a>
<?php endif; ?>

有时我在Alabama内没有Michigan$l,但我ALMIAlabamaMichigan有关联AL,在这种情况下,我希望将MIAlabama替换为MichiganFullName。如果我想在上面的代码中编写一个干净简短的代码,我应该怎么做?我有更多的词要匹配并将它们联系在一起所以请给我一个干净的代码。

1 个答案:

答案 0 :(得分:0)

你可以使用正则表达式

  if(preg_match('(Michigan|Alaska|MI|AL)', $l) === 1) {

    ........

   } 

在你的情况下

<?php if (preg_match('(Michigan|Alaska|MI|AL)', $l) === 1): ?>
   <a href="http://www.example.com/"><?= $l ?></a>
 <?php else: ?>
   <a href="http://www.example.com/"></a>
<?php endif; ?>

或替换

<?php 
  $short = ["MI", "AL"];
  $long   = ["Michigan", "Alaska"];

  $newl = str_replace($short, $long, $l);
?>
<?php if (preg_match('(Michigan|Alaska)', $newl) === 1): ?>

   <a href="http://www.example.com/"><?= $newl ?></a>
 <?php else: ?>
   <a href="http://www.example.com/"></a>
<?php endif; ?>