|
|
|
| Как вы думаете, что будет работать быстрее, 1 или 2:
1. Залезть в базу, взять заголовок: 2008-12-08_Название статьи и с помощью регулярных выражений отсечь цифры в начале заголовка.
2. Залезть в базу, вытянуть данные про текст(id, заголовок), найти на диске соответствующий файл, раскрыть его и выдернуть заголовок. | |
|
|
|
|
|
|
|
для: Лена
(08.12.2008 в 13:58)
| | Первое. Или спроектировать нормальную базу где заголовок и дата в отдельных полях таблици храняться... | |
|
|
|
|
|
|
|
для: Лена
(08.12.2008 в 13:58)
| | зачем тут регулярные выражения? 11 символов с начала строки можно отрезать функцией substr() | |
|
|
|
|
|
|
|
для: Лена
(08.12.2008 в 13:58)
| | elenaki здесь права, зачем лишнее телодвижение и РВ.
substr() В вашем случае, как раз то что надо.
<?php
$t="2008-12-08_Название статьи";
$t=substr($t,11);
print $t;
?>
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(08.12.2008 в 15:04)
| | Прав Zend72. | |
|
|
|
|
|
|
|
для: sim5
(08.12.2008 в 15:28)
| | Это понятно, но в данном случае, как есть, то права elenaki :)
А вот насчет советов как оптимальнее, то не спорю. | |
|
|
|
|
|
|
|
для: AcidTrash
(08.12.2008 в 15:33)
| | За substr() спасибо. Только она мне немного в другом понадобилась :)
Решила последовать совету Zend и sim5. Отделила дату от заголовка, сделала отдельные поля.
Только пришлось в базе перекинуть старые данные, но уже исправленные, в новое поле в таблице:
UPDATE texts SET main_text_ = SUBSTRING(main_text, 12) WHERE id NOT BETWEEN 1 AND 17
|
А папках, где у меня лежали файлы типа 2008-12-08_Название статьи.txt, пришлось тоже обрезать первые цифры, чтобы название совпадало с заголовком в базе:
<?php
function direct($dir){
if(!($dp=opendir($dir))) die ("Невозможно открыть каталог $dir");
while (false !== ($file=readdir($dp))){
if (is_dir($dir . "/" .$file)) {
if ($file!='.' && $file!='..' && $file!='menu' && $file!='contact'){
direct($dir . "/" .$file);
}
}
else{
$a = substr($file,11);
rename($dir . "/" . $file, $dir . "/" . $a);
}
}
closedir ($dp);
}
$d = 'content/';
direct($d);
?>
|
Теперь все, как и надо. Спасибо всем. | |
|
|
|