HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

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

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

  #1  
Старый 10.05.2010, 02:56
roxblnfk
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме:
217996

Репутация: 56
Отправить сообщение для roxblnfk с помощью ICQ
Wink

ну вы даёте

> Есть таблица со строкой name. В ней находятся числа через запятую 1,5,54,234 и т.д. Как средствами php можно удалить число 54 из данной строки.

m0Hze, кодом
PHP код:
$return str_replace($need.',','',$str); 
ты можешь удалить что надо + обрезать похожее на него, например в строке $str='1,2,3,12,13,23'; надо удалить $need='2';
В итоге будет 1,3,113,23 (откуда тут 113 оО? и почему вместо пяти чисел тут их четыре..)
Ну и, как было замечено, число в конце строки не удаляет.

WNZRS, ты вобще извращенец перевести строку в массив уже другая методика,
но зачем перебирать массив и выравнивать ключи вручную, когда есть стандарные функции?
зачем делать чтото типа
$array[$i+$minus] = $array[$i]; , если после всех операций по удалению можно заюзать, например, array_values() и взять индексный массив
(только зачем это надо, если implode() работает с ассоциативными массивами?)

Можно исправить скрипт m0Hze, например, изменив так:
было:
PHP код:
 $return str_replace($need.',','',$str); 
стало:
PHP код:
$return substr(str_replace(','.$need.',',',',','.$str.','),1,-1); 
(но в учёт того, что я не знаю, как работает str_replace на низком уровне, а разбираться лень, то для гарантии того, что будут вырезаны ВСЕ требуемые числа, даже записанные подряд, можно использовать функцию два раза сразу)
PHP код:
$return substr(str_replace(','.$need.',',',',str_replace(','.$need.',',',',','.$str.',')),1,-1); 
(тут в кавычках 2 пробела сами появляются, их убить надо )
или
PHP код:
$return substr(str_replace(array(','.$need.',',','.$need.','),',',','.$str.','),1,-1); 

Последний раз редактировалось roxblnfk; 10.05.2010 в 12:14..
 
Ответить с цитированием

  #2  
Старый 10.05.2010, 08:19
LStr1ke
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме:
1455812

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

А так можно?
PHP код:
<?php
$string 
"1,5,154,32,123,132";
$need "32";
echo 
preg_replace("#(^\d|\,|^)".$need."(\,|^|^\d)#",",",$string);
?>
 
Ответить с цитированием

да вы чё хоть...
  #3  
Старый 10.05.2010, 13:33
roxblnfk
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме:
217996

Репутация: 56
Отправить сообщение для roxblnfk с помощью ICQ
Arrow да вы чё хоть...

LStr1ke, не знаю, зачем ты полез в регулярки, это же всё медленнее работает.
Но, если следовать твоим суждениям унифицировать алгоритм под любой разделитель, то проще написать в регулярках.
Допустим. Даже не смотря на кривость того, что если разделитель будет не запятой, то при замене числа на его месте появится именно запятая
Признаюсь, я плохо шарю в регулярках, поэтому, если это твой код, задам тебе вопрос:
из твоей регулярки "#(^\d|\,|^)".$need."(\,|^|^\d)#"
что означает |^ во второй скобке? т.е. неэкранированный символ ^ в начале выбора без дальнейших символов.. (в первой скобке такой вариант чудом помогает убить нужное число в начале строки )
в первых скобках у тебя ^\d для чего? возьми строку $string = "132,1,5,154,32,123,32"; и эта последовательность уничтожит 132
В конце строки число 32 твоим алгоритмом не убивается.

На мой взгляд, регулярки надо использовать только тогда, когда без них никак (т.е. можно, но не выгодно ни по времени коддинга ни по производительности)
Вобщем, вот мой вариант, где разделяющие символы - любые, кроме десятичных цифр, и заменено оно будет на левый разделитель от данного числа
PHP код:
echo substr(preg_replace("/(\D)".intval($need)."(\D)/","\${1}",'®'.$string."\n"),1,-1); 
И опять же, функцию надо будет взять не один раз, т.к. строку $string = "1^5^154^32^32^123^132"; полностью от числел 32 она не очистит за 1 раз
(либо править регулярку на подобные нонсенсы, либо брать функцию дважды, а то и трижды вобщем по циклу через while... но это если число более 3х раз подряд в строке, тут проще разбить на массив)
так на строку $string = "32б1^5-154^32 32,32х32 32=32_32!32й123^132ы32"; нужно применить функцию 4 раза

остался ещё вариант перебора строки по байтам, этого ещё ни кто не предложил хотя самый эффективный метод, имхо

Последний раз редактировалось roxblnfk; 10.05.2010 в 13:37..
 
Ответить с цитированием

  #4  
Старый 10.05.2010, 15:45
AtomoS
Познающий
Регистрация: 17.02.2010
Сообщений: 64
Провел на форуме:
132243

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

существует алгоритм, который добавляет в переменную данные:
Цитата:
$error .= 'Вы уже полчили бонус за голос за '.$time.'<br/>';
после добавление всё это дело выводится через echo и получается следушая картина:
Цитата:
Вы уже полчили бонус за голос за 2010-05-10
Вы уже полчили бонус за голос за 2010-05-09
Вы уже полчили бонус за голос за 2010-05-08
а теперь вопрос как мне вывести только 1ую надпись?
Цитата:
Вы уже полчили бонус за голос за 2010-05-10
 
Ответить с цитированием

  #5  
Старый 10.05.2010, 15:54
zavra
Участник форума
Регистрация: 12.03.2008
Сообщений: 159
Провел на форуме:
912928

Репутация: 137
Отправить сообщение для zavra с помощью ICQ
По умолчанию

привет! мне нужно сделать, чтобы когда человек заходил на страницу, отправлялся бы запрос на другой сервер, и действие на том сервере приосходило бы от его имени. например, в случае с ГЕТом, можно добавить ссылку на изображение вида "vk.com/change_settings.php?name=lol". можно как-то так же просто сделать это через ПОСТ, будет ли CURL работать в данном случае (ведь вроде как тогда запрос будет идти от сервера, а не от пользователя)?
 
Ответить с цитированием

  #6  
Старый 10.05.2010, 15:58
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме:
12942062

Репутация: 1550


Отправить сообщение для wildshaman с помощью ICQ
По умолчанию

Курл не пройдет.
Обычный гет тоже не пройдет, везде нужны хеши.
Надо иметь пассивную XSS и написать скрипт, который сам будет выдирать хеш, подставлять и делать запрос - все через пассивку.
 
Ответить с цитированием

  #7  
Старый 10.05.2010, 16:32
zavra
Участник форума
Регистрация: 12.03.2008
Сообщений: 159
Провел на форуме:
912928

Репутация: 137
Отправить сообщение для zavra с помощью ICQ
По умолчанию

там нету хэша, я не про контакт, просто для примера.
есть вариант сделать флешку, впринципе просто, но слишком палевно
 
Ответить с цитированием

  #8  
Старый 10.05.2010, 16:39
Kusto
Moderator - Level 7
Регистрация: 04.02.2007
Сообщений: 554
Провел на форуме:
7518056

Репутация: 1089


Отправить сообщение для Kusto с помощью ICQ
По умолчанию

Цитата:
Сообщение от zavra  
там нету хэша, я не про контакт, просто для примера.
есть вариант сделать флешку, впринципе просто, но слишком палевно
блин ты спрашиваеш про обыкновенное csrf здесьб почитай что умные люди пишут)))) http://www.inattack.ru/article/552.html
 
Ответить с цитированием

  #9  
Старый 10.05.2010, 17:02
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

zavra, попробуй создай форму с экшном куда тебе нужно. И в событии onload страницы делай сабмит этой формы...
 
Ответить с цитированием

Копирование альбомов из группы
  #10  
Старый 10.05.2010, 22:54
foxxx1234
Познающий
Регистрация: 26.11.2008
Сообщений: 40
Провел на форуме:
1410006

Репутация: 4
Отправить сообщение для foxxx1234 с помощью ICQ
По умолчанию Копирование альбомов из группы

В общем есть скрипт который копирует альбомы из группы вк. Проблема в том, что копирует он только первые 20 фотографий из каждого альбома.
Помогите подправить чтобы копировал весь альбом.

Вот ссылка на сам скрипт.

http://slil.ru/29109993

Последний раз редактировалось foxxx1234; 10.05.2010 в 22:57..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



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


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




ANTICHAT.XYZ