Jump to content

kilogram

User
  • Posts

    120
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by kilogram


  1. <html><body>
    <?php
    function cite($ourText, $maxlen=60, $prefix="> "){
    $st = wordwrap($ourText,$maxlen-strlen($prefix),"\n");
    $st = $prefix.str_replace("\n","\n$prefix",$st);
    return $st;
    }
    echo '<pre>';
    echo cite("Томас Джефферсон, один из авторов Декларации независимости, писал,
    что «все люди созданы равными». При этом однако третий президент США всю
    жизнь оставался рабовладельцем. Сейчас в Америке проходят две выставки, в
    центре внимания которых – это парадоксальное расхождение между идеями
    Джефферсона и его образом жизни. Наш корреспондент Джули Табо рассказывает
    подробнее об экспозиции в его знаменитой усадьбе Монтиселло. Смотрите видео.",20);
    echo '</pre>';
    ?>
    </body></html>

    Растолкуйте пожалуйста вот эти 2 строки:

    $st = wordwrap($ourText,$maxlen-strlen($prefix),"\n");
    $st = $prefix.str_replace("\n","\n$prefix",$st);

    Что вот это за действие? $prefix.str_replace почему точка "."?

    Что делает первая строка?

    • Like 1
  2. Есть текст: Привет малыш! Как дела?

    Нужно перенести слово "малыш" между слловами "Как дела?", чтоб получился в итоге текст:

    Привет! Как малыш дела? Слышал что вроде есть функция wordwrap. Что-то она не срабатывает для такого дела. Или этой функцией такое не сделать, нужно один текст заменять на другой функцией str_replace или strtr, этот вариант не покатит с помощью этой функции?


    <html><body>
    <?php
    $t = "Привет малыш! Как дела?";
    echo wordwrap($t,8," ");
    ?>
    </body></html>

    • Like 2
  3. Я понял в чем прикол, оказывается все на местах, проблема в том что в самом .htaccess нужно было ввести не просто DirectoryIndex 100.php

    ,а нужно было так DirectoryIndex index.php 100.php

    Всем спасибо за помощь и за подсказки

    • Like 1
  4. В файле httpd.conf в самом конце файла ввел такую строку,чтоб дать возможность серверу использовать файл httpd.conf для изменения настроек сервера.

    AccessFileName .htaccess

    Нашел ещё AllowOverride в httpd.conf и изменил значние на All.


    <Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all
    </Directory>

    В файле httpd.conf ввел DirectoryIndex 100.php,чтоб запускать этот файл когда не найден файл index.php, удалил файл index.php. В файле 100.php ввел банальное:

    <html><body>
    <?php
    echo 'Ошибка!';
    ?>
    </body></html>

    Перезапустил Апач. Запускаю http://test.ru/ выдает на экран


    Forbidden

    You don't have permission to access / on this server.

    Apache/2.2.19 (Win32) PHP/5.3.6 Server at test.ru Port 80

    Как сделать чтоб работал .htaccess?

    • Like 1
  5. Попробовал свой пример написать, получается если я хочу найти массив и заменить на массив,как такое же происходило в примере выше, про который я прочитал в книге и спросил выше, мне нужно каждый элемент выписывать в фигурных скобках с индексами?

    $t = array("Петя","Вася");
    $m = array("Дуся","Муся");
    echo str_replace($t,$m,"{$t[0]}{$t[1]}");

    • Like 2
  6. В документации написано так:

    search
    Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.

    replace
    Значение замены, будет использовано для замены искомых значений search. Для множества значений можно использовать массив.

    subject
    Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).

    Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject, а результатом функции также будет являться массив.

    Получается такой расклад?

    1 параметр - $from - поиск- искомый элемент

    2 параметр - $to - поиск - заменяемый элемент

    3 параметр - а в третем парметре сама замена происходит?

    В 3 параметре TITLE - это название первого массива $from который заменится на его второй элемент массива from на BODY?

    "<title>{TITLE}</title><body>{BODY}</body>");

    • Like 1
  7. СКажите, а зачем здесь нужны в описании массива внутри каждый элемент отделять {}

    <html><body>
    <?php
    $from = array("{TITLE}","{BODY}");
    $to = array("Философия","Учат в школе, учат в школе!");
    echo str_replace($from,$to, "<title>{TITLE}</title><body>{BODY}</body>");
    ?>

    </body></html>

    Как работает эта строка?

    echo str_replace($from,$to, "<title>{TITLE}</title><body>{BODY}</body>");

    2 'элемента массива $from заменяются на 2 элемента массива $to? 3-ий параметр не ясно как работает в данном коде

    • Like 1
  8. str_replace и substr_replace В чем разница?

    Оба зменяют одну строку другой. Чем лучше та или иная функция?

    А в чем же различие?


    <?php
    $text = "<br>Ну, ты чувак гонишь!";
    echo substr_replace($text,'молодец',17,6);
    echo str_replace("гонишь",'молодец',$text);
    ?>

    • Like 1
  9. А понял прикол, по таблицу ACII приоритет смотрится, получается код заглавной буквы меньше чем маленькой, то есть Петя>ПЕтя и поэтому возвращает тру.

    • Like 1
  10. Прошу прощения, в документации написано.

    Возвращает отрицательное число, если str1 меньше, чем str2,

    http://ua2.php.net/manual/ru/function.strcasecmp.php

    Написал так:

    if(strcasecmp("Петя","ПЕтя")) echo 'hi!'; else
    echo 'bye ';

    Здесь str1 меньше чем str2, но возвращает true, а не отрицательное число. Почему?

    • Like 1
  11. Да, в принципе все парвильно так и выводит, потому что строки равны, если равны возвращает по идее 0, то есть ложь по сути.

    • Like 1
  12. strcasecmp - проверяет на соотвествие двух строк с учетом регистра.

    strcmp - проверяет на соотвествие двух строк без учетом регистра.

    <?php
    if(strcasecmp('Vas','Vas')) echo 'hi!'; else
    echo 'bye ';

    if(strcmp('vas','vas')) echo 'hi!'; else
    echo ' bye';
    ?>

    a)В первом ифе должно вывести hi! так как Левая строка Vas такая же как правая, но выводит почему то bye.

    B)Во втором ифе должно вывести h! так как 2 стоки одинаковы, но выводит опять bye, почему?strcasecmp - проверяет на соотвествие двух строк с учетом регистра.

    strcmp - проверяет на соотвествие двух строк без учетом регистра.

    <?php
    if(strcasecmp('Vas','Vas')) echo 'hi!'; else
    echo 'bye ';

    if(strcmp('vas','vas')) echo 'hi!'; else
    echo ' bye';
    ?>

    a)В первом ифе должно вывести hi! так как Левая строка Vas такая же как правая, но выводит почему то bye.

    B)Во втором ифе должно вывести h! так как 2 стоки одинаковы, но выводит опять bye, почему?

    • Like 1
  13. Пишутся квадратные скобки во втором, третем форе и дальше - это означает что мы получаем доступ к вложенному массиву через его счетчик?

    • Like 1
  14. Попробовал вывести массив:


    for ($i=0,$x=0; $x<16; $x++) {
    for ($y=0; $y<16; $y++) {
    $chars[$x][$y] = array($i, chr($i));
    $i++;
    }
    }


    for ($i = 0; $i < count($chars); $i++)
    for ($j = 0; $j < count($chars[$i]); $j++)
    for ($k = 0; $k < count($chars[$i][$j]); $k++)
    echo $chars[$i][$j][$k].' ';

    Вроде вывел. Интересует вопрос. Почему во втором внутреннем форе нужно писать $chars[$i], а в третем форе $chars[$i][$j] ?

    • Like 1
  15. Хочу удалить ненужные символы 4, точка с запятой и @ со строки: "Привет Фантамас4;@!";

    Прочитал в документации что для этого сущетвует функция trim

    пробую так, не работает.


    $t = "Привет Фантамас4;@!";
    echo trim($t,'4;@');

    • Like 1
  16. <html><body>

    <?php ## Печать всей таблицы ASCII-символов.
    // Сначала создаем массив того, что мы собираемся выводить,
    // не заботясь о форматировании (дизайне) информации
    for ($i=0,$x=0; $x<16; $x++) {
    for ($y=0; $y<16; $y++) {
    $chars[$x][$y] = array($i, chr($i));
    $i++;
    }
    }
    // Теперь выводим накопленную информацию, используя идеологию
    // вставки участков кода в HTML-документ
    ?>
    <table border=1 cellpadding=3 cellspacing=0>
    <? foreach ($chars as $row) {?>
    <tr>
    <? foreach ($row as $cell) { ?>
    <td>
    <?=$cell[0]?>:
    <b><tt><?=$cell[1]?></tt></b>
    </td>
    <? }?>
    </tr>
    <? }?>
    </table>

    </body></html>

    Как работает вывод двумерного ассоциативного массива в этом коде?

    $chars[$x][$y] = array($i, chr($i)); - здесь каждому элементу созданного массива $chars присваиватся значение результата анонимного вызова массива array без имени?

    • Like 1
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy