php - 将 lang 函数放入 php 字符串中

标签 php mysql string function str-replace

尝试将我的 MySQL DB 转换为 PHP。

代码如下:

$sql = "SELECT Name, Price FROM utf WHERE Name LIKE 'K%'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    echo "<div class=\"CSSTableGenerator style=\"width:600px;height:150px;\"><table><tr><th>Name</th><th>Price</th></tr></div>";
    // output data of each row
   while($row = $result->fetch_assoc()) {
    $name = str_replace('K', 'Karambit', $row['Name']);
    echo "<tr><td>".$name."</td><td>".$row["Price"]." ".$row["Trend"]."</td></tr>";
}
   echo "</table>";

因此选择,按签名字符过滤,然后翻译。

现在,我有一个包含翻译的 lang.php 文件。

这里是:

<?php
function lang($phrase){
    static $lang = array(
        'ba' => 'Bayonet',
        'ka' => 'Karambit'
    );
    return $lang[$phrase];
}
?>

如何将其放入这一行:

$name = str_replace('K', 'Karambit', $row['Name']);

并将 'ka' => 'Karambit' 替换为 'Karambit'

这些都不起作用:

//attempt 1
$name = str_replace('K', 'lang('ka');', $row['Name']);
//attempt 2
$name = str_replace('K', '$lang('ka');', $row['Name']);
//attempt 3
$word = echo lang('ka');
$name = str_replace('K', '$word', $row['Name']);

最佳答案

不要输入function调用引号,只需使用:

$name = str_replace('K', lang('ka'), $row['Name']);
                       //^^^^^^^^^^ See here

同时给你另一个选择:

您可以将 search => Replace 值存储到一个数组中,如下所示:

$searchReplace = [
    "ba" => "Bayonet",
    "ka" => "Karambit",
];

然后你可以简单地使用 strtr()替换它,例如

$name = strtr($row['Name'], $searchReplace);

关于php - 将 lang 函数放入 php 字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31305734/

相关文章:

php - 语法错误,Laravel 更新后意外 ')'

javascript - 使用 jQuery 隐藏表行

mysql - 通过Mysql计算一个月中的星期几

Java : Getting effected sentence in Google-diff-match-patch

php 删除选项不起作用

php - iPhone 收不到推送通知

java - 将排序后的多个数据放入一个变量中(就像 HashMap 只是具有更多行)

php - 输入登录密码时,要检查的密码不==

c# - List<String>.Contains(mystring) 是做引用比较还是值比较?

string - 检测prolog中字符串的所有k个长度的单词