ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

07.06.2007, 14:36
|
|
Постоянный
Регистрация: 31.07.2002
Сообщений: 312
Провел на форуме: 1212427
Репутация:
187
|
|
Сообщение от The_HuliGun
Как видишь сочетание символов \x1e и \x10 воспринимается как один символ.
Если строка в двойных ковычках, то в твоем случае даже не надо смотреть сочетание сивмолов \x, PHP сразу понимает, что эт один символ..
PHP код:
<?php
$str='фвафіаafdjasdjfowej\x1e\x10s\\\asdf%&**()';
echo"$str<br>";
for($i=0;$i<=strlen($str);)
{
if($str[$i+1]=="x" && $str[$i]=="\\"){
echo substr($str,$i,4)."<br>";
$i+=4;
}else{
echo"$str[$i]<br>";
$i++;
}
}
?>
|
|
|

08.06.2007, 02:05
|
|
Новичок
Регистрация: 28.05.2007
Сообщений: 13
Провел на форуме: 17665
Репутация:
23
|
|
У меня проблема в регулярных выражениях не могу сообразить как сделать чтобы все ячейки написанные ниже были помещены в массив 
В HTML таблице есть ячейки вида:
Код:
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a><font color=black>news</font></center></td>
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a></center></td>
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a></center></td>
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a></center></td>
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a><font color=black>news</font></center></td>
Там везде не просто везде News написано, а разная информация, естественно с буквами, цифрами, слэшами, пробелами, ентерами т.е выход делать регулярное выражение с тегами, а как именно сделать это регулярное выражение проблема  , пробовал просто без помощи тегов делать не выходит.
Нужно чтобы только такого вида ячейки были помещены в массив.
Делаю так:
$exp = '/<td><center>(.*?)<br><a href=(.*?)>(.*?)<\/a><font color=(.*?)>(.*?)<\/font><\/center><\/td>/';
preg_match_all($exp, $str, $preg);
Пробовал и по другому составлять $exp но так и не додумался  (
В массив $preg заносятся только первая и последняя ячейки 
А нужно чтобы каждая ячейка так как она распаложена шла и в массив ...
Т.е вариант типо сначало сделать $exp занести в массив потом сделать
Код:
$exp_2 = '/<td><center>(.*?)<br><a href=(.*?)>(.*?)<\/a><\/center><\/td>/';
Занести в массив отпадает надо чтобы поочереди всё было 
Помогите разобраться плз как сделать 
Вроде как и пустиковое то дело, а мне совсем непонятно  .
|
|
|

08.06.2007, 02:28
|
|
IQ- 137%
Регистрация: 15.06.2004
Сообщений: 441
Провел на форуме: 1212666
Репутация:
662
|
|
Стукни в асю 939455 помогу с регулркой.Просто не совсем вопрос понятен.
__________________
|
|
|

08.06.2007, 02:52
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Эм еси у тебя только первая и последняя, то прочитай внимательно про preg_match_all и его 4 парметром !
Последний раз редактировалось Isis; 08.06.2007 в 02:55..
|
|
|

08.06.2007, 03:21
|
|
Новичок
Регистрация: 28.05.2007
Сообщений: 13
Провел на форуме: 17665
Репутация:
23
|
|
Код:
<?php
$data="<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a><font color=black>news</font></center></td>
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a></center></td>";
$exp = '/<td><center>(.*?)<br><a href=(.*?)>(.*?)<\/a>(.*?)<\/center><\/td>/';
preg_match_all($exp,$data,$math);
print_r($math[0]);
?>
Вот как всё решилось благодаря grinay! СПАСИБО ОГРОМНОЕ! Написал код за секунды 
А я мучился целый день как же не догодался сюда написать  даже спать не хотел пока не узнаю как всё делается 
Теперь хоть и спать спокойно можно  .
Последний раз редактировалось Cond; 08.06.2007 в 03:27..
|
|
|

08.06.2007, 04:43
|
|
Познающий
Регистрация: 21.05.2007
Сообщений: 61
Провел на форуме: 79888
Репутация:
145
|
|
Уже написал код, не заметил, что вопрос решен, но все же, в этой регулярке дополнительно парсить данные не нужно.
Код:
$exp = "/\<td\>\<center\>(.+?)\<br\>\<a\shref\=\'([^\']+?)\'[^\>]+?\>\<b\>(.+?)\<\/b\>\<\/a\>(\<font[^\>]*?\>(.+?)\<\/font\>)?\<\/center\>\<\/td\>/is
|
|
|

08.06.2007, 16:24
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Напомню, что в теме обсуждаются только вопросы, непосредственно связанные с ЯЗЫКОМ.
Оффтоп буду тереть и жестоко наказывать.
|
|
|

09.06.2007, 01:08
|
|
Новичок
Регистрация: 28.05.2007
Сообщений: 13
Провел на форуме: 17665
Репутация:
23
|
|
hhover спасибо по прошлой проблемке, но сделал уже как grinay подсказал, всё работает, а раз работает пусть работает как есть  Но всё равно спасибо!
Вот образовалась проблема не могу понять как решить 
Есть вот такая HTML форма:

Туда вводятся числа в верхнюю строчку от 1 до 19 ,
во 2-ую (нижнюю) строчку от 1 до 20.
Нужно чтобы допустим ввожу я в первую строчку 2 во вторую 5 мне должно вывести куда-нибудь, например в файл result.txt вот такое вот:
Код:
12
13
14
15
23
24
25
34
35
45
Тоесть первая цифра 2 обозначает сколько всего должно быть цифр в каждой по две ...
Вторая цифра 5 обозначает что из неё будут браться цифры вида 1 2 3 4 5 и делаться двухзначная цифра ...
Надо чтобы цифры не повторялись например в цифрах выше нет цифр 11 22 33 44 55 Ещё если есть цифры 12, то 21 уже не надо. Если есть 23, то 32 не надо.
Если было бы в HTML форме первая цифра 3 вторая 5, тогда не должно было бы быть цифр 111 222 333 444 555 1x1 2x2 3x3 4x4 5x5 x11 x22 x33 x44 x55 11x 22x 33x 44x 55x (где x - любая цифра)
Вот что должно выводиться: 123 124 125 134 234 245 134 135 345 345
Ещё если уже есть 123, то цифры 321 231 213 132 уже не должны быть.
Как такое можно сделать? Помогите плз.
Кто поможет готовым скриптом, тому с меня сайт с веб шеллом с правами записи в разные папки.
Последний раз редактировалось Cond; 09.06.2007 в 01:49..
|
|
|

09.06.2007, 06:45
|
|
Постоянный
Регистрация: 31.07.2002
Сообщений: 312
Провел на форуме: 1212427
Репутация:
187
|
|
Сообщение от Cond
Тоесть первая цифра 2 обозначает сколько всего должно быть цифр в каждой по две ...
Вторая цифра 5 обозначает что из неё будут браться цифры вида 1 2 3 4 5 и делаться двухзначная цифра ...
Надо чтобы цифры не повторялись например в цифрах выше нет цифр 11 22 33 44 55 Ещё если есть цифры 12, то 21 уже не надо. Если есть 23, то 32 не надо.
Если было бы в HTML форме первая цифра 3 вторая 5, тогда не должно было бы быть цифр 111 222 333 444 555 1x1 2x2 3x3 4x4 5x5 x11 x22 x33 x44 x55 11x 22x 33x 44x 55x (где x - любая цифра)
Вот что должно выводиться: 123 124 125 134 234 245 134 135 345 345
Ещё если уже есть 123, то цифры 321 231 213 132 уже не должны быть.
Как такое можно сделать? Помогите плз.
Кто поможет готовым скриптом, тому с меня сайт с веб шеллом с правами записи в разные папки.
вот попробуй(параметры передаются через $f1 и $f2):
PHP код:
<?php
$file=fopen("result.txt","w");
function a($t,$z,$s){
global $f2,$f1,$file;
for($q=($t+1);$q<=$f2;$q++){
if($z<$f1)
a($q,($z+1),$s.$q);
else
fwrite($file,$s.$q."\r\n");
}
}
a(0,1,"");
fclose($file);
?>
Только я не догнал, почему у тебя второе число аж до 20? эт как? Цифр то всего 9(ну 10 с нулем, но он, как я понял, тебе не нужен).
|
|
|

09.06.2007, 12:37
|
|
Новичок
Регистрация: 28.05.2007
Сообщений: 13
Провел на форуме: 17665
Репутация:
23
|
|
Сообщение от Dr.Frank
Только я не догнал, почему у тебя второе число аж до 20? эт как? Цифр то всего 9(ну 10 с нулем, но он, как я понял, тебе не нужен).
Допустим если $f1=2, а $f2=20,
тогда уже будут задействованы числа и 11 и 12 и так до 20, а в целом да они и состоят все из цифр 0-9 
Шелл в личке.
Скрипт работает, огромное СПАСИБО! 
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|