Я работаю над программным обеспечением PHP-форума (FluxBB), и пользователь столкнулся с довольно интересной ошибкой, так что, похоже, PHP вставляет многоточие в середине строки.PHP, вставляющий эллипсис в середину (!) Строки?
Из-за аналогичной ошибки, которую я обнаружил в сети, я чувствую себя вынужденным сказать, что этот код находится в функции и что $db
является глобальной переменной.
Вот (упрощенный) код:
// Get unique words from the above arrays
$unique_words = array_unique(array_merge($words['add']['post'], $words['add']['subject']));
if (!empty($unique_words))
{
$result = $db->query('SELECT id, word FROM '.$db->prefix.'search_words WHERE word IN('.implode(',', preg_replace('#^(.*)$#', '\'\1\'', $unique_words)).')', true) or error('Unable to fetch search index words', __FILE__, __LINE__, $db->error());
$word_ids = array();
while ($row = $db->fetch_row($result))
$word_ids[$row[1]] = $row[0];
Теперь $unique_words
состоит из нескольких французских слов (в данном случае), а многоточие добавляется прямо перед запятой и за закрывающей кавычки. Это должно означать, что он добавляется во время вызова implode, что не имеет никакого смысла.
ПРИМЕЧАНИЕ: Уход за словами позаботился.
Фактически, только PHP может вызывать ошибку, так как запрос, который выплевывает отладчик, сохраняется перед выполнением.
Я на самом деле пытается оказать поддержку, но я не могу придумать разумное решение ...
Можете ли вы предоставить примерные данные для '$ words ['add'] ['post']' и '$ words ['add'] ['subject']', чтобы мы могли воспроизвести поведение? Вывод 'var_export ($ words ['add'])' был бы приятным. – VolkerK
Я не могу, хотя я мог бы попросить их. См. Следующий ответ для примера запроса. Вы можете получить дополнительную информацию в оригинальной теме здесь: http://fluxbb.org/forums/post/26036/#p26036 (Как я уже сказал, я просто передаю это, потому что это один из самых странных ошибки, с которыми я столкнулся) – Franz
И да, я имел в виду многоточие. – Franz