2015-12-10 5 views
0

У меня есть сценарий многоязычного который работает следующим образом:Определить константу PHP

файле En.php

define('lang_hello_world', 'Hello World!'); 

index.php

<?php include('en.php'); echo lang_hello_world; ?> 

Скрипт работает отлично и заменить язык. Но теперь мне нужно преобразовать константу, которая хранится в MySQL.

lang_hello_world в MySQL и мне нужно распечатать преобразованные на странице, как я могу это сделать?

+2

Пожалуйста, добавьте некоторое объяснение - что вы пытаетесь сделать? –

+0

. Lang_hello_world уже определен в файле языка, мне нужно преобразовать lang_hello_world, который я получу из таблицы на mysql с константой-корреспондентом, определенной в файле языка. – user1505698

+0

Вы сдались? – AbraCadaver

ответ

-2

Просто выньте его из своей базы данных, прежде чем положить ее в свою постоянную?

<?php 
    mysql_connect("localhost", "root", "passw"); 
    mysql_select_db("languages"); 
    $query = mysql_query("SELECT lang_hello_world FROM languages"); 
    $fetch = mysql_fetch_assoc($query); 

    define("lang_hello_world", $fetch['lang_hello_world']); 
    mysql_close(); 
?> 
+3

Предлагая использовать 'mysql_' функции, как все еще пытаться продать VHS ленты. Он долго не рекомендуется (и упал только в выпуске PHP7), и вы действительно не должны «продвигать» его больше. По крайней мере, используйте образец 'mysqli_'. – Oldskool

+0

. Lang_hello_world уже определен в языковом файле, мне нужно получить lang_hello_world из mysql, а затем конвертировать константу-корреспондент языкового файла. – user1505698

0

В файле En.php, необходимо подключить базу данных и определить значение, что-то вроде этого:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$result = mysqli->query("SELECT * FROM language_table WHERE language = 'EN' LIMIT 1"); 
$row = $result->fetch_assoc(); 
define('lang_hello_world', $row[0]['lang_hello_world']); 

Надежда может помочь!

+0

Этот lang_hello_world уже определен в языковом файле, мне нужно получить lang_hello_world из mysql, а затем преобразовать константу-корреспондент языкового файла. – user1505698

+0

Вам нужно переопределить константу в файле языка. Попробуйте следующее: http://stackoverflow.com/questions/8465155/redefining-constants-in-php –

0

constant(). Если $row['var'] извлекается из базы данных равен lang_hello_world тогда:

$val = constant($row['var']); 

Теперь $val равен Hello World!, если загружен английский файл. Или, очевидно,:

echo constant($row['var']); 
Смежные вопросы