найти строку по значениею! PHP

Статус
В этой теме нельзя размещать новые ответы.

rostisslav

Постоялец
Регистрация
27 Мар 2007
Сообщения
365
Реакции
142
Стоит задача с mysql выбираються данные ( текст) так вот там есть просто текст, а есть имя файла
например 000XXXXXXX.txt
так вот надо когда натыкаемся на файл его надобно загрузить!
-------------------------------------
как это сделать О великие гуру!:thenks:
 
Ты уж определись - тебе строку искать или файл загружать?
 
Можно попытаться составить запрос, чтобы выбирал только имена файлов однако в этом случае существует вероятность ошибки, а можно сделать так. После выбора данных проверить если это файл загрузить его, ведь если это не фай1л он и не загрузится потому что его просто нет.

Добавлено через 4 минуты
Еще более лучший вариант если у вас текст перемешен с именем файла после отбора данных используя регулярные выражения найти имена файлов.
 
в базе есть как текст так и имя файла в котором хранться текст!
когда по запросу делается выборка то если идет имя файла тогда надобно подгружать текстовый файл в противном случае выводить текст
 
ТС, тебе нужно подгружать файл ср-вами mysql, т.е. load_file()? или уже в скрипте?
 
нет, у него в базе, как я понял есть текст типа "texttexttexttexttexttexttexttext0000xxxxxxx.txttexttexttexttexttext";

он вытаскивает его из базы и нужно распарсить эту строку перед использованием(выводом?) так, чтобы вместо 0000xxxxxxx.txt подгрузился текст из этого файла
 
Бредовая постановка задачи.
Если могут быть файлы, надо хранить их имена отдельно от текста.
 
+1 или шаблонизировать их вывод в тексте например [filename.txt], чтобы простейшей регуляркой можно было вытащить и обработать
 
файлы шаблонизированы
00000001.txt
00000002.txt
все!
 
если средствами SQL, то.
SELECT text, LOAD_FILE(text) as textContent from test
При разборе результатов запроса проверять, если содержимое поля textContent равно null, значит в поле text находится текст, если не равно null, значит в нём содержится содержимое файла

Добавлено через 13 минут
Средствами php тоже просто.
PHP:
echo ("<pre>");
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result =  mysql_query("SELECT text from test");
while ($row = mysql_fetch_object($result)) {
    if (file_exists($row->text)) {
        $handle = fopen($row->text, "r");
        $str = fread($handle, filesize($row->text));
        fclose($handle);
        echo("\r\n\r\nСодержимое файла (".($row->text)."):");
    } else {
        $str = $row->text;
        echo("\r\n\r\nСодержимое поля:");
    }
    echo $str;
}echo ("</pre>");
mysql_free_result($result);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху