ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #16191  
Старый 02.06.2010, 22:37
Redwood
Участник форума
Регистрация: 10.09.2009
Сообщений: 120
Провел на форуме:
2212846

Репутация: 56
По умолчанию

1. Цифрами нельзя называть переменные
2. preg_replace
 

  #16192  
Старый 02.06.2010, 22:54
DoN
Познающий
Регистрация: 26.05.2010
Сообщений: 48
Провел на форуме:
110887

Репутация: 19
По умолчанию

Цитата:
Сообщение от Redwood  
1. Цифрами нельзя называть переменные
2. preg_replace
$str = "ghtjjrdd345hjf";
$txt = 345;
$s = 1;
preg_replace("|$txt|",$s,$str);
echo $str;

не катит

Последний раз редактировалось DoN; 02.06.2010 в 22:57..
 

  #16193  
Старый 02.06.2010, 23:01
LaVey
Новичок
Регистрация: 27.12.2009
Сообщений: 16
Провел на форуме:
356323

Репутация: 0
По умолчанию

PHP код:
echo preg_replace("|$txt|",$s,$str); 
или
PHP код:
$la preg_replace("|$txt|",$s,$str);
echo 
$la
ты же вызываешь вывод стр..
 

  #16194  
Старый 02.06.2010, 23:07
4upakabr0
Познающий
Регистрация: 14.05.2008
Сообщений: 58
Провел на форуме:
528944

Репутация: 4
По умолчанию

1. Во-первых, если ты уверен что от формы пришло именно "123+456" в параметре s, то такой вариант вполне рабочий:
PHP код:
$_REQUEST["s"];
//echo $p; //убери первые два слеша чтобы понять что пришло от формы, ибо  + иногда режеться если приходит GET'ом
$arr explode("+",$p);
echo 
$arr[0];
echo 
$arr[1]; 
2. Вот тебе вариант с заменой. Регулялярка только ищет, она возвращает то, что попадает под шаблон. А заменяет хорошо вот что:

PHP код:
$p $_REQUEST["s"];
echo 
$p."<br>";
$src="123";
$dst="!замена!";
$newstr=str_replace($src,$dst,$p);
echo 
$newstr

Последний раз редактировалось 4upakabr0; 02.06.2010 в 23:14..
 

  #16195  
Старый 02.06.2010, 23:14
DoN
Познающий
Регистрация: 26.05.2010
Сообщений: 48
Провел на форуме:
110887

Репутация: 19
По умолчанию

Всё) Еще один вопрос.
Как сделать ?

preg_replace("|href=...|",....);
там где = есть 3 варианта:
1) =текст
2) ='
3) ="
как сделать чтобы все 3 варианта распознавались и заменялись?
 

  #16196  
Старый 02.06.2010, 23:16
4upakabr0
Познающий
Регистрация: 14.05.2008
Сообщений: 58
Провел на форуме:
528944

Репутация: 4
По умолчанию

Дай конкретную строку(или варианты), которую ты получаешь на входе и дай строку, которую хочешь получить на выходе.
 

  #16197  
Старый 02.06.2010, 23:26
DoN
Познающий
Регистрация: 26.05.2010
Сообщений: 48
Провел на форуме:
110887

Репутация: 19
По умолчанию

Цитата:
Сообщение от 4upakabr0  
Дай конкретную строку(или варианты), которую ты получаешь на входе и дай строку, которую хочешь получить на выходе.
$str = 'href="site.ru';
тут после = 3 варианта
$re = 'foto.ru';
preg_replace("|href= и тут перебрать 3 вар|","href=$re",$str);
тоже 3 вар

Последний раз редактировалось DoN; 02.06.2010 в 23:28..
 

  #16198  
Старый 02.06.2010, 23:31
Ins3t
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
Провел на форуме:
2083691

Репутация: 330
По умолчанию

Цитата:
Я в основном пишу софт на С++
Искренне сочувствую твоим заказчицам.
 

  #16199  
Старый 02.06.2010, 23:37
DoN
Познающий
Регистрация: 26.05.2010
Сообщений: 48
Провел на форуме:
110887

Репутация: 19
По умолчанию

Цитата:
Сообщение от Ins3t  
Искренне сочувствую твоим заказчицам.
Я в PHP на уровне дилетанта знаю. А вот сишку прекрастно)

Писал много известых софтин. Например http analyzer
 

  #16200  
Старый 02.06.2010, 23:58
4upakabr0
Познающий
Регистрация: 14.05.2008
Сообщений: 58
Провел на форуме:
528944

Репутация: 4
По умолчанию

Если я тебя правильно понял, то держи:
PHP код:
$str1='href="текст';
$str2='href=';
$str3='href="';
//$str4=''; //добавляй сколкьо хочешь проверок - все будет проверенно в цикле, нумеруй их как strN

$url='site.ru';
$dst="\${1}$url";
for(
$i=1;$i<=3;$i++)
{
    
$s=str.$i;
    echo 
preg_replace("/(href=)([\"|\']+)(\w*)/",$dst,$$s)."<br>";

Но учти, после href= идет либо " либо ' а потом текст
Т.е. ты хочешь отловить все попадания " или ' сразу после = и перед текстом ссылки?) Кароч, хочешь инъект не пустить?

Последний раз редактировалось 4upakabr0; 03.06.2010 в 00:23..
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ