- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый вечер, господа:)
Есть строка:
http://site.com/?a=[набор буков и цифр]
либо строка
http://site.com/?a=[набор буков и цифр]&b=....
либо строка
http://site.com/?b=...&a=[набор буков и цифр]
либо строка
http://site.com/?b=...&a=[набор буков и цифр]&c=....
нужно вырезать [набор буков и цифр].:gm:
chemax, вырезать или выбрать? язык программирования-то какой, Fortran, Lisp, а может PHP? :)
chemax, вырезать или выбрать? язык программирования-то какой, Fortran, Lisp, а может PHP? :)
тток проснулся, извиняюсь затупил) php ) ну как бэ присвоить переменной это значение)
Наверное регуляркой проще, но я в них не силен, поэтому другой способ:
Получаем все, что после знака вопроса:
Делим на отдельные части, разделенные знаком &
$r = explode('&', $request);Теперь эти части делим по знаку равенства ( = )
foreach ($r as $value) {$temp = explode('=', $value);
echo $temp[0].' '.$temp[1]
}
Вместо эхи что-то свое впишите.
То есть мы получим для каждой пары:
temp[0] = 'a';
temp[1] = 'Значение a';
temp[0] = 'b';
temp[1] = 'Значение b';
и так далее. Как-то так :)
Можно еще включить RegisterGlobals, тогда GET-массив будет попадать в соответствующие переменные.
Но не уверен и говорят, что RegisterGlobals - большая дыра.
$str = 'http://site.com/?d=erfrfr&a=sd76f57645sd4&f=ewfdsdf345&c=wedwewef';
preg_match('/site.com\/\?.*?a=([0-9a-z]+)/', $str, $matches);
$a = $matches[1];
var_dump($a);
Наверное регуляркой проще, но я в них не силен, поэтому другой способ:
Получаем все, что после знака вопроса:
Делим на отдельные части, разделенные знаком &
$r = explode('&', $request);Теперь эти части делим по знаку равенства ( = )
foreach ($r as $value) {$temp = explode('=', $value);
echo $temp[0].' '.$temp[1]
}
Вместо эхи что-то свое впишите. Как-то так :)
спасиб))))
$str = 'http://site.com/?d=erfrfr&a=sd76f57645sd4&f=ewfdsdf345&c=wedwewef';
preg_match('/site.com\/\?.*?a=([0-9a-z]+)/', $str, $matches);
$a = $matches[1];
var_dump($a);
и вам спасибо)
Наверное регуляркой проще, но я в них не силен, поэтому другой способ:
Получаем все, что после знака вопроса:
PHP код:
$request = $_SERVER['REQUEST_URI'];
Делим на отдельные части, разделенные знаком &
PHP код:
$r = explode('&', $request);
Теперь эти части делим по знаку равенства ( = )
PHP код:
foreach ($r as $value) {
$temp = explode('=', $value);
echo $temp[0].' '.$temp[1]
}
$str = 'http://site.com/?d=erfrfr&a=sd76f57645sd4&f=ewfdsdf345&c=wedwewef';
preg_match('/site.com\/\?.*?a=([0-9a-z]+)/', $str, $matches);
$a = $matches[1];
var_dump($a);
Ну вы, блин, даете. Переменная лежит в $_GET["a"]
Ёхан Палыч, вы невнимательно читаете задачу. Там речь идёт о некоей абстрактной строке. Если я на заборе напишу http://site.ru/?a=asdsad то оно тоже магическим образом в $_GET попадёт? :)
Ну вы, блин, даете. Переменная лежит в $_GET["a"]
не-не) не на столько же я дурак) ссылка представляет собой текст, который надо разобрать)
chemax добавил 21.09.2010 в 15:26
$str = 'http://site.com/?d=erfrfr&a=sd76f57645sd4&f=ewfdsdf345&c=wedwewef';
preg_match('/site.com\/\?.*?a=([0-9a-z]+)/', $str, $matches);
$a = $matches[1];
var_dump($a);
http://site.com/?a=[набор буков и цифр]
не обрабатывает)
и зачем var_dump($a); ???
Возможно я и невнимателен.
Для работы с урлами есть parse_url и parse_str и выдумывать велосипед здесь необязательно.
chemax,
$str = 'http://site.com/?a=sd76f57645sd4';
preg_match('/site.com\/\?.*?a=([0-9a-z]+)/', $str, $matches);
$a = $matches[1];
у меня всё отрабатывает. вероятно, у вас в наборе букв и цифр есть и русские буквы? тогда более бронебойный вариант:
preg_match('/site.com\/\?.*?a=([0-9a-zа-я]+)/i', $str, $matches); :)
var_dump() я добавил для вывода результата на экран, чтобы видно было
Ёхан Палыч, согласен, что ваш вариант подходит не хуже. Вот только не согласен, что регулярные выражения для разбора строк - велосипед :)