Люди пмомгите пожалуйста разобраться с функцией, ато в самоучителях дают пример а толком не обьясняют( PHP: // Извлекаем имя хоста из URL preg_match("/^(http:\/\/)?([^\/]+)/i", "http://www.php.net/index.html", $matches); $host = $matches[2]; А именно не понятна эта строка ^(http:\/\/)?([^\/]+) что значит ^ ? (http:\/\/)?([^\/]+) это типа if(http:\/\/) [^\/]+ ? http:\/\/ и [^\/]+ что значит?
1. ^\/ значит "не /". А ([^\/]+) значит - "любые символы до /" 2. "http:\/\/" это "http://". А обратные слэши (\) это экранизаторы. Сделано для того чтобы символ / не был воспринят как условия. Если определить границы условия знаком #, то слэши нужны будут этому знаку в условии: preg_match("#^(http://)?([^/]+)#i". С экранизацией: preg_match("#моё условие \# продолжение условия#i" . 3. Про [^\/]+ см. п. 1.