За последние 24 часа нас посетили 72326 программистов и 1653 робота. Сейчас ищут 976 программистов ...

Не могу разобраться с функцией

Тема в разделе "PHP для новичков", создана пользователем marcuss, 11 авг 2008.

  1. marcuss

    marcuss Активный пользователь

    С нами с:
    6 авг 2008
    Сообщения:
    54
    Симпатии:
    0
    Люди пмомгите пожалуйста разобраться с функцией, ато в самоучителях дают пример а толком не обьясняют(

    PHP:
    1. // Извлекаем имя хоста из URL
    2. preg_match("/^(http:\/\/)?([^\/]+)/i",
    3.     "http://www.php.net/index.html", $matches);
    4. $host = $matches[2];
    А именно не понятна эта строка
    ^(http:\/\/)?([^\/]+)
    что значит ^ ?
    (http:\/\/)?([^\/]+) это типа if(http:\/\/) [^\/]+ ?
    http:\/\/ и [^\/]+ что значит?
     
  2. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    1. ^\/ значит "не /". А ([^\/]+) значит - "любые символы до /"
    2. "http:\/\/" это "http://". А обратные слэши (\) это экранизаторы. Сделано для того чтобы символ / не был воспринят как условия. Если определить границы условия знаком #, то слэши нужны будут этому знаку в условии: preg_match("#^(http://)?([^/]+)#i". С экранизацией: preg_match("#моё условие \# продолжение условия#i" .
    3. Про [^\/]+ см. п. 1.
     
  3. marcuss

    marcuss Активный пользователь

    С нами с:
    6 авг 2008
    Сообщения:
    54
    Симпатии:
    0
    спасибо,а где можно найти подробное описание всех обозначений?
     
  4. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
  5. marcuss

    marcuss Активный пользователь

    С нами с:
    6 авг 2008
    Сообщения:
    54
    Симпатии:
    0
    спасибо, не думал что это регулярные выражения...