ОРИГИНАЛ КОДMySQL Query в массив для preg_replace
$sentance="are you hungry too?";
function newLanguage($text) {
\t $sql = "SELECT in,out FROM words";
\t $res = mysql_query($sql) or die();
\t $in_array = array();
\t $out_array = array();
\t while ($row = mysql_fetch_array($res)){
\t \t $in_array[] = $row['in']; // table in, NEW words
\t \t $out_array[] = $row['out']; //table out, ENG words
\t }
\t return preg_replace($in_array,$out_array,$text);
}
$newwords = newLanguage($sentance);
echo $newwords;
ИЗМЕНЕННАЯ КОД:
ini_set("display_errors", "1");
error_reporting(E_ALL);
function newLanguage($text) {
$sql = "SELECT in,out FROM words";
$res = mysql_query($sql) or die();
$in_array = array();
$out_array = array();
while ($row = mysql_fetch_array($res)){
\t $in_array[] = '/\b' . preg_quote($row['in']) . '\b/'; // table in, NEW words
\t $out_array[] = $row['out']; //table out, ENG words
}
/* VERSION 2 - STATIC, FOR DEBUGGING
$in_array = array('~\you~s','~\to~s','~\too~s');
$out_array = array('noa','nie','niee');*/
return preg_replace($in_array,$out_array,$text);
}
$sentance="are you hungry too?";
$newwords = newLanguage($sentance);
var_dump($in_array);
echo $sentance;
ТОК КОД
ini_set("display_errors", "1");
error_reporting(E_ALL);
$sentance="are you hungry too?";
function newLanguage($text) {
$sql = "SELECT * FROM words";
$res = mysql_query($sql) or die(); \t \t
while ($row = mysql_fetch_array($res)){
$in_array[] = '/\b' . preg_quote($row['in']) . '\b/'; // table in, NEW words
$out_array[] = $row['out']; //table out, ENG words
}
return preg_replace($in_array,$out_array,$text);
}
$newwords = newLanguage($sentance);
var_dump($in_array);
echo $newwords;
У меня возникли проблемы с моим кодом, для жизни меня я не могу заставить его работать, я работал с preg_replace, прежде чем в использовании фильтр слов. Хотя создание динамического массива с использованием результатов запроса полностью отбрасывает меня. Я просмотрел несколько руководств, но никто не помог мне понять, где я ошибаюсь.
Любая помощь будет признателен :)
ЦЕЛЬ: Создание нового языка перевода. База данных содержит строку с 'in' & 'out', которая является и новым языком, и местным языком.
ПРОБЛЕМА: Я уверен, если мои Массивы успешно заселены, так как мой preg_replace не работает.
---- UPDATE ----
Вот что моя база данных выглядит;
id in out
1 you noa
2 to nie
3 too niee
- Они хранятся в виде VARCHARS
Ваши 'в' ценности действительно регулярные выражения, или просто строки? – Barmar
Можете ли вы разместить образцы значений из таблицы 'words'? Убедитесь, что включена функция error_reporting (E_ALL)? Вероятно, вы получаете ошибки из 'preg_replace', потому что в regexp нет соответствующих разделителей. – Barmar
Как включить error_reporting? Я этого раньше не встречал. Я просто вставляю; ini_set ("display_errors", "1"); error_reporting (E_ALL); над моим запросом? – user3670338