Тема: PHP

Ответить в теме
Страница 1 из 6 1 2 3 ... ПоследняяПоследняя
Показано с 1 по 20 из 113
  1. Вверх #1
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903

    По умолчанию PHP

    Такой код имеет право на существование?
    PHP код:
    while (true) {
    //код
    $a=strpos($str1,$str2) or break;
    //ещё код

    Т.е. выражаясь человеческим языком: если подстроку не найдёт в строке while прекращается?


  2. Вверх #2
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903
    В общем, не проконала такая фигня

    В следующем выражении в чём ошибка?

    PHP код:
    $j=strpos($s,$i); 
    $i - число,
    $s - строка.

  3. Вверх #3
    Посетитель Аватар для AxelF
    Пол
    Мужской
    Сообщений
    136
    Репутация
    24
    Цитата Сообщение от Прим Палвер Посмотреть сообщение
    Такой код имеет право на существование?
    PHP код:
    while (true) {
    //код
    $a=strpos($str1,$str2) or break;
    //ещё код

    Т.е. выражаясь человеческим языком: если подстроку не найдёт в строке while прекращается?
    Человеческим языком трудно if написать?

  4. Вверх #4
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903
    В смысле? Код?

  5. Вверх #5
    Посетитель Аватар для AxelF
    Пол
    Мужской
    Сообщений
    136
    Репутация
    24
    Цитата Сообщение от Прим Палвер Посмотреть сообщение
    В общем, не проконала такая фигня

    В следующем выражении в чём ошибка?

    PHP код:
    $j=strpos($s,$i); 
    $i - число,
    $s - строка.
    Выдержка из php мануала:
    "int strpos ( string haystack, string needle [, int offset] ) ...
    Если needle не является строкой, он приводится к целому и трактуется как код символа".
    А так ошибки никакой нет

  6. Вверх #6
    Посетитель Аватар для AxelF
    Пол
    Мужской
    Сообщений
    136
    Репутация
    24
    Цитата Сообщение от Прим Палвер Посмотреть сообщение
    В смысле? Код?
    Вот так:
    Код:
    $a = strpos($str1, $str2);
    
    if ($a === false) break;

  7. Вверх #7
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903
    Вот применение: нужно вычислить индексы вхождения каждого числа в строке.
    А возвращаются пустые значения
    PHP код:
    $s="1g;lbn2fgknn3gbkm4glmnh";
    for (
    $i=1;$i<5;$i++) {
    $j=strpos($s,$i);
    echo 
    "\$i=".$i."<br>";
    echo 
    "\$j=".$j."<br><br>";

    (упростил, чтобы был виден только глючный код/
    проверял - на сервере этот карлик тоже не работает)
    Последний раз редактировалось Прим Палвер; 06.09.2007 в 18:13.

  8. Вверх #8
    Новичок
    Пол
    Мужской
    Возраст
    39
    Сообщений
    38
    Репутация
    15
    Прочитай еще раз внимательно предыдущий пост с выдержкой из мануала. И обрати внимание на то как интерпретируется второй параметр функции strpos, если он не является строкой.

    Рабочий код:

    PHP код:
    $s="1g;lbn2fgknn3gbkm4glmnh"
        for (
    $i=1;$i<5;$i++) { 
            
    $j=strpos($s,strval($i)); 
            echo 
    "\$i=".$i."<br>"
            echo 
    "\$j=".$j."<br><br>"
        } 

  9. Вверх #9
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903
    Спасибо! И подумать не мог. Везде пишется, что число запросто интерпретируется в строку...

  10. Вверх #10
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903
    Раз уж пошёл разговор, кто-то ответит ещё на пару вопросов?

    1. На моём сайте абсолютно все страницы выводятся через страницу индекс с помощью разных инклюдов (исторически сложилось). Недостатки такой системы?

    2. В разных инклюдах много однотипных данных. Если слить в один большой файл (не базу данных), каковы недостатки слияния? Не все, а около сотни. Один файл может завесить пару мегабайт.

  11. Вверх #11
    Постоялец форума
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    41
    Сообщений
    1,474
    Репутация
    697
    Цитата Сообщение от Прим Палвер Посмотреть сообщение
    1. На моём сайте абсолютно все страницы выводятся через страницу индекс с помощью разных инклюдов (исторически сложилось). Недостатки такой системы?
    Никаких недостатков если написано нормально. А об удобстве подобного судите сами. Я бы на вашем месте переписал все под темплетный движок, Smarty например, удобнее поддерживать в дальнейшем.

    Цитата Сообщение от Прим Палвер Посмотреть сообщение
    2. В разных инклюдах много однотипных данных. Если слить в один большой файл (не базу данных), каковы недостатки слияния? Не все, а около сотни. Один файл может завесить пару мегабайт.
    Что за данные? Чем они являются? Текст или переменные?

  12. Вверх #12
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903
    Одна строковая переменная.

    Т.е. вопрос вот в чём. Так, как сейчас, 66 книг в Библии, например, каждый пользователь смотрит что-то своё. А при слиянии в одну, все будут тянуть ОДИН файл. Не будет грузить сервер? или ещё какие непонятности-неприятности...

    p.s. ногами не пинать, до MySQL я ещё не дочитал.

  13. Вверх #13
    Постоялец форума
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    41
    Сообщений
    1,474
    Репутация
    697
    Почитай про Smarty. Я думаю ты откроешь для себя много нового, и множество новых идей. А в том чтобы тянуть один файл нет ничего плохого.
    Последний раз редактировалось Илья Царюк; 07.09.2007 в 12:58.

  14. Вверх #14
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903
    Ну, если ничего плохого, сливаю в несколько огромных файлов-инклюдов, а в них уже будет switch.

    Smarty - это система управления сайтом?

  15. Вверх #15
    Постоялец форума
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    41
    Сообщений
    1,474
    Репутация
    697
    Template Engine
    http://smarty.php.net/

    Именно то чего вам так нехватает. Не поленитесь, потратьте время на изучение. Уверяю, пред вами откроется миллион возможностей и идей.

    А по поводу одного или сотни файлов, все зависит от ситуации. Если у вас виндоус и файлы фрагментированны и разросаны по жескому диску то их чтение будет более долгим чем чтение одного файла.

    Если ваш ОДИН файл или МНОГО файлов являются PHP скриптами, то лучше использовать МНОГО файлов. Так как один большой файл будет грузится в память каждый раз без особой на то неободимости. И каждый раз будут обрабатываться ваш свич. Чтобы это не стало узким местом для ваших скриптом воспользуйтесь кешером кода. xcache,APC и другие. Это снизит время выполнения скрипта.

    А вообще постарайтесь отделять данные от логики.
    Последний раз редактировалось Илья Царюк; 07.09.2007 в 13:16.

  16. Вверх #16
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903

    По умолчанию ПОИСК

    Как кто вычленяет слова в поиске?
    Например, в ответ на запрос "Адам" может выдавать "мадам".
    (привожу и то и другое к верхнему регистру)
    Или "рост" - "росток". И т.д.
    Как справляетесь?

    Я попытался-было сделать такой код условия:
    PHP код:
    $s2=strpos(strtoupper($s),$search);
    if ((
    $s2===0)or(($s2>0)and(!strpos($alphabet,$s{$s2-1}))))
    {...} 
    $alphabet - допустимые символы
    $search - слово, что ищем
    $s - строка, в которой ищем
    Но всё равно выдаёт слова наподобие мадамы
    strpos должен возвращать false, а наоборот - true, когда находит пробел (он - на нулевой позиции в последовательности $alphabet). А получается, что сквозь фильтр проходят и другие символы...
    Последний раз редактировалось Прим Палвер; 10.09.2007 в 21:39.

  17. Вверх #17
    Постоялец форума
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    41
    Сообщений
    1,474
    Репутация
    697
    а зачем вычленять слова? или это полнотекстовый поиск или поиск строго указанного. для полнотекстового поиска с релевантностью есть хорошие готовые решения. лично я никак не вычленяю слова, а пользуюсь FullText Search в MySQL.

  18. Вверх #18
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903
    Понял. Рано занялся поиском.

    Хотя при вводе фраз уже находил (за 4-5 секунд) на всём сайте.

    Оказалось, что на сервере оно же не работает. Видать, сильно грузит и автоматически блокируется.

  19. Вверх #19
    Постоялец форума
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    41
    Сообщений
    1,474
    Репутация
    697
    Смотря какой целью вы задаетесь. Если вы ищите по файлам с текстом, то тут единственный вариант хорошо пойдет - индексация файлов скриптом в мускуль в таблицу MyISAM и организация полнотекстового поиска с сортировкой по релевантности. Или можете индексировать только ключевые слов и складывать их куда захотите, и искать потом по ним. Главное не нужно искать по файлам, создавайте индекс, тогда все будет летать.

  20. Вверх #20
    User banned
    Пол
    Мужской
    Возраст
    17
    Сообщений
    8,079
    Репутация
    1903
    Т.е. нужно заранее выбрать то, что будут искать?


Ответить в теме
Страница 1 из 6 1 2 3 ... ПоследняяПоследняя

Похожие темы

  1. Введение в PHP, MySQL
    от Anonymous в разделе Программирование
    Ответов: 81
    Последнее сообщение: 21.03.2015, 01:17
  2. Бесплатно 25 мб места, cPanel, MySQL, PHP, CGI, Perl и др.
    от OnlineHoster в разделе Интернет :: технические вопросы
    Ответов: 1
    Последнее сообщение: 25.02.2006, 21:00
  3. помогите! PHP -> сохранение страницы с другого хоста
    от [)wad.org в разделе Программирование
    Ответов: 5
    Последнее сообщение: 22.03.2005, 15:25
  4. пмогите!!!!! (php,mysql, while();)
    от Jeno в разделе Программирование
    Ответов: 7
    Последнее сообщение: 23.11.2004, 16:07
  5. Кто у нас программирует на PHP?
    от iFog в разделе Программирование
    Ответов: 23
    Последнее сообщение: 10.03.2004, 16:35

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения