Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка ссылок в файле в алфавитном порядке?
 
 автор: Classic   (11.05.2006 в 16:59)   письмо автору
 
 

Так... как отсортировать ссылки в алфавитном порядке? В php.

   
 
 автор: P@Sol   (11.05.2006 в 17:23)   письмо автору
 
   для: Classic   (11.05.2006 в 16:59)
 

а как они у вас хранятся?

   
 
 автор: Gendalf   (11.05.2006 в 18:25)   письмо автору
 
   для: P@Sol   (11.05.2006 в 17:23)
 

У меня тоже вопрос: как отсортировать файлы по дате их добавления, т.е. чтобы новые файлы были сверху?
P.S. Файлы извлекаю из readdir()

   
 
 автор: virtus   (11.05.2006 в 18:29)   письмо автору
 
   для: Gendalf   (11.05.2006 в 18:25)
 

структура таблицы какая? можно по ID если автоикремент или по дате если таковая имеется

   
 
 автор: Classic   (11.05.2006 в 18:29)   письмо автору
 
   для: P@Sol   (11.05.2006 в 17:23)
 

Как обычные гиперссылки.

   
 
 автор: Саня   (11.05.2006 в 18:36)   письмо автору
 
   для: Classic   (11.05.2006 в 18:29)
 

А где они у вас хранятся? В массиве, файле или в БД?

   
 
 автор: Classic   (11.05.2006 в 18:38)   письмо автору
 
   для: Саня   (11.05.2006 в 18:36)
 

файле

   
 
 автор: cheops   (11.05.2006 в 23:37)   письмо автору
 
   для: Classic   (11.05.2006 в 18:29)
 

Приведите кусочек файла, если не сложно... они с тэгом <a> храняться или чистые адреса?

   
 
 автор: Classic   (12.05.2006 в 06:33)   письмо автору
 
   для: cheops   (11.05.2006 в 23:37)
 

<table align=center>
        <tr align=center><td><a class=3 href="albeniz/">Альбенис</a>
        <tr align=center><td><a class=3 href="bach/">Бах</a>
        <tr align=center><td><a class=3 href="beethoven/">Бетховен</a>
        <tr align=center><td><a class=3 href="vivaldi/">Вивальди</a>
        <tr align=center><td><a class=3 href="ivanov-Kramskoy/">Иванов-Крамской</a>
        <tr align=center><td><a class=3 href="rodrigo/">Родриго</a>
        <tr align=center><td><a class=3 href="sor/">Сор</a>
        <tr align=center><td><a class=3 href="tarrega/">Таррега</a>
        <tr align=center><td><a class=3 href="francesco/">Франческо Да Милано</a>
        <tr align=center><td><a class=3 href="lobos/">Эйтор Вилла-Лобос</a>
</table>

   
 
 автор: Gendalf   (12.05.2006 в 07:51)   письмо автору
 
   для: Classic   (12.05.2006 в 06:33)
 

А мне кто нибудь поможет?

   
 
 автор: cheops   (12.05.2006 в 12:28)   письмо автору
 
   для: Classic   (12.05.2006 в 06:33)
 

Можно поступить следующим образом
<?php
  $text 
file("data.txt");
  
$pattern "|<a class=3 href=\"[^\"]+\">([^<]+)</a>|i";
  foreach(
$text as $line)
  {
    if(
preg_match($pattern,$line,$out))
    {
      
$arr[$line] = $out[1];
    }
  }
  
ksort($arr);
  echo 
"<pre>";
  foreach(
$arr as $key => $value)
  {
    echo 
$key;
  }
  echo 
"</pre>";
?>

   
 
 автор: Classic   (12.05.2006 в 19:54)   письмо автору
 
   для: cheops   (12.05.2006 в 12:28)
 

Он сортирует по алфавиту ссылок и чуть-чуть по имени.

   
 
 автор: Classic   (12.05.2006 в 20:16)   письмо автору
 
   для: cheops   (12.05.2006 в 12:28)
 

Мне надо чтобы сортировало только по названию ссылки, чем не отличается этот скрипт.

   
 
 автор: cheops   (13.05.2006 в 11:41)   письмо автору
 
   для: Classic   (12.05.2006 в 20:16)
 

В строке
<tr align=center><td><a class=3 href="albeniz/">Альбенис</a>

под названием ссылки что подразумевается: albeniz или Альбенис?

   
 
 автор: Classic   (13.05.2006 в 11:42)   письмо автору
 
   для: cheops   (13.05.2006 в 11:41)
 

Альбенис
Нодо чтобы по "Альбенису" сортировало.

   
 
 автор: cheops   (13.05.2006 в 12:28)   письмо автору
 
   для: Classic   (13.05.2006 в 11:42)
 

Хм... вообще сейчас так и должно быть - у меня по крайней мере именно так и выводит? А у вас какой результат? Где тестируете на локальной машине или на реальном сервере?

   
 
 автор: Classic   (13.05.2006 в 12:30)   письмо автору
 
   для: cheops   (13.05.2006 в 12:28)
 

Локальной машине. Сейчас на сервер (посмотрю).

   
 
 автор: Classic   (13.05.2006 в 12:37)   письмо автору
 
   для: Classic   (13.05.2006 в 12:30)
 

Вообще очень странно.
Я чуть поменял файл data.txt
На

<table align=center> 
<tr align=center><td><a class=3 href="albeniz/">А</a> 
<tr align=center><td><a class=3 href="bach/">Бах</a> 
<tr align=center><td><a class=3 href="beethoven/">Бетховен</a> 
<tr align=center><td><a class=3 href="vivaldi/">Вивальди</a> 
<tr align=center><td><a class=3 href="ivanov-Kramskoy/">Иванов-Крамской</a> 
<tr align=center><td><a class=3 href="rodrigo/">Родриго</a> 
<tr align=center><td><a class=3 href="sor/">Сор</a> 
<tr align=center><td><a class=3 href="tarrega/">Таррега</a> 
<tr align=center><td><a class=3 href="francesco/">а</a> 
<tr align=center><td><a class=3 href="lobos/">Б</a> 
</table>

По идее должно получится так

А
а
Б
Бах 
Бетховен 
Иванов-Крамской 
Родриго 
Сор 
Таррега 
Вивальди
Но результат даёт такой

А 
Бах 
Бетховен 
а 
Иванов-Крамской 
Б 
Родриго 
Сор 
Таррега 
Вивальди 

   
 
 автор: Classic   (13.05.2006 в 12:39)   письмо автору
 
   для: Classic   (13.05.2006 в 12:37)
 

Скрипт сам не трогал

   
 
 автор: cheops   (13.05.2006 в 12:50)   письмо автору
 
   для: Classic   (13.05.2006 в 12:39)
 

Регистр значит различает... попробуйте тогда изменить скрипт следующим образом
<?php 
  $text 
file("data.txt"); 
  
$pattern "|<a class=3 href=\"[^\"]+\">([^<]+)</a>|i"
  foreach(
$text as $line
  { 
    if(
preg_match($pattern,$line,$out)) 
    { 
      
$arr[$line] = strtolower($out[1]); 
    } 
  } 
  
ksort($arr); 
  echo 
"<pre>"
  foreach(
$arr as $key => $value
  { 
    echo 
$key
  } 
  echo 
"</pre>"
?>

или настроить локаль, как это описывается в темах по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=6084
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=13537
настройка локали будет работать только на сервере (нужен UNIX).

   
 
 автор: Classic   (13.05.2006 в 14:29)   письмо автору
 
   для: cheops   (13.05.2006 в 12:50)
 

>настройка локали будет работать только на сервере (нужен UNIX).
?

Просто надо вставить в обычный php-й код?


setlocale (LC_ALL, array ('ru_RU.CP1251', 'rus_RUS.1251'));

   
 
 автор: cheops   (13.05.2006 в 15:45)   письмо автору
 
   для: Classic   (13.05.2006 в 14:29)
 

Да, или используйте приведённый выше скрипт - он будет приводить строки к нижнему регистру и сортировка будет производиться корректно.

   
 
 автор: Classic   (13.05.2006 в 15:47)   письмо автору
 
   для: cheops   (13.05.2006 в 15:45)
 

Нет... не получилось не через локали не через новый скрипт (

   
 
 автор: Classic   (13.05.2006 в 18:19)   письмо автору
 
   для: Classic   (13.05.2006 в 15:47)
 

Есть еще пути, решения?

   
 
 автор: Classic   (15.05.2006 в 13:36)   письмо автору
 
   для: Classic   (13.05.2006 в 18:19)
 

Оч. нужно.

   
 
 автор: cheops   (15.05.2006 в 22:54)   письмо автору
 
   для: Classic   (15.05.2006 в 13:36)
 

Хм... вообще говоря, что-то мыслей в голову положительных не приходит, не уж-то и на локальной машине и на сервер сортировка производится неправильно? Как правило, возникают проблемы лишь на реальном сервере, при этом на локальном сервере сортируется всё правильно - у вас на локальной машине Windows?

   
 
 автор: Classic   (16.05.2006 в 10:24)   письмо автору
 
   для: Classic   (11.05.2006 в 16:59)
 

Я пробовал и на локально и на реальной. Я хочу изменить структуру сайта полностью. Так что можете забыть этот вопрос, буду делать через БД. Так мне кажется лучше. Всё равно спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования