HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 26.08.2009, 17:47
L I G A
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
С нами: 9362947

Репутация: 1196


По умолчанию

Цитата:
Сообщение от S00pY  
PHP код:
<?php
function countspec($stroka){
$count=0
for(
$i=0;$i<=strlen($stroka)-1;$i++){ 
    if(!
preg_match("/[a-zA-Z0-9]/",$stroka[$i]))
    {
$count++;}}
Echo (
'Спец символов:'.$count);  
}
?>
Как то так....
Не злись... я просто выразил своё мнение)
круто! ,у тебя выйдет в слове ОМГ
3 спецсимвола.
Цитата:
$stroka[$i]
откуда ты взял что $stroka массив?ты её перед этим explod'ил?

htmlspecialchars — Преобразует специальные символы в HTML сущности
и по моему в данном примере её будет рациональней использовать

Последний раз редактировалось L I G A; 26.08.2009 в 17:54..
 
Ответить с цитированием

  #2  
Старый 26.08.2009, 16:54
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

2 m0nsieur:

Задача - написать фактически сплойт. Joker-jar только что в ЛС отписал рабочий вариант

Что tamper data - ежу понятно, но тут раздел кодинг. Откуда по вашему сплойты на milw0rm.com берутся? Вот и польза будет

Тот же сплойт на fckeditor на пыхе

PS: Речь идет об автоматизации процесса

Последний раз редактировалось Pashkela; 26.08.2009 в 16:58..
 
Ответить с цитированием

  #3  
Старый 26.08.2009, 17:42
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

И у того и у другого ошибка - достаточно просто написать

$i<strlen($stroka)

счет длины начинается с единички
 
Ответить с цитированием

  #4  
Старый 26.08.2009, 17:46
S00pY
Познающий
Регистрация: 24.04.2007
Сообщений: 92
С нами: 10025299

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

Цитата:
Сообщение от Pashkela  
И у того и у другого ошибка - достаточно просто написать

$i<strlen($stroka)

счет длины начинается с единички
Спасибо,исправил.
PHP код:
<?php
function countspec($stroka){
$count=0
for(
$i=0;$i<strlen($stroka);$i++){ 
    if(!
preg_match("/[a-zA-Z0-9]/",$stroka[$i]))
    {
$count++;}}
Echo (
'Спец символов:'.$count);  
}
?>
 
Ответить с цитированием

  #5  
Старый 26.08.2009, 18:10
Krist_ALL
Banned
Регистрация: 14.01.2009
Сообщений: 515
С нами: 9116877

Репутация: 468


По умолчанию

LIGA,
PHP код:
<?php 
function countspec($stroka){ 
$count=0;  
for(
$i=0;$i<=strlen($stroka)-1;$i++){  
    if(!
preg_match("/[a-zA-Z0-9]/",$stroka[$i])) 
    {
$count++;}} 
Echo (
'Спец символов:'.$count);   
}

?>
Надо вместо $stroka[$i] , ,$stroka{$i}
 
Ответить с цитированием

  #6  
Старый 26.08.2009, 18:17
L I G A
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
С нами: 9362947

Репутация: 1196


По умолчанию

Цитата:
Сообщение от Krist_ALL  
LIGA,
PHP код:
<?php 
function countspec($stroka){ 
$count=0;  
for(
$i=0;$i<=strlen($stroka)-1;$i++){  
    if(!
preg_match("/[a-zA-Z0-9]/",$stroka[$i])) 
    {
$count++;}} 
Echo (
'Спец символов:'.$count);   
}

?>
Надо вместо $stroka[$i] , ,$stroka{$i}
это код S00pY, в моем все впорядке.

Последний раз редактировалось L I G A; 26.08.2009 в 18:27..
 
Ответить с цитированием

  #7  
Старый 26.08.2009, 18:16
d_x
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
С нами: 9541766

Репутация: 2407


По умолчанию

Цитата:
Надо вместо $stroka[$i] , ,$stroka{$i}
Можно и так и так. Пока что. В PHP6 можно только [$i].

Другое дело, что функция записывается проще:

PHP код:
<?php
function countspec($stroka)

  echo 
'Спецсимволов: '.preg_match_all('/[^a-zA-Z0-9]/',$stroka,$m);
}
?>
В регулярку добавьте символы, которые нужно.

Последний раз редактировалось d_x; 26.08.2009 в 18:38..
 
Ответить с цитированием

  #8  
Старый 26.08.2009, 18:23
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

Вот мой вариант этой задачки:

PHP код:
<?php 
function countspec($stroka) { 
   
$count=0;  
   for(
$i=0;$i<strlen($stroka);$i++) {  
       if(!
preg_match("#[\sa-zа-я0-9]#i",$stroka{$i})) $count++;
   } 
   Echo (
'Спец символов:'.$count);
}

countspec("Вася Пушкин Loloman !@#$%^&*()-+№");
?>
Пробел не спец символ по идее, его просто надо игнорировать, ну и большие буквы если просто модификатор i ставим и всё

Но это опять же не учитывая возможных кириллических кодировок и прочих уникодов

PS: Но самый красивый вариан конечно у d_x двумя постами выше, но с моей регуляркой + его ^ в начале, т.е. так:

PHP код:
<?php 
function countspec($stroka
{  
  echo 
'Спецсимволов: '.preg_match_all('/[^\sa-zа-я0-9]/i',$stroka,$m); 


countspec("Вася Пушкин Loloman !@#$%^&*()-+№");
?>

Последний раз редактировалось Pashkela; 26.08.2009 в 18:45..
 
Ответить с цитированием

  #9  
Старый 26.08.2009, 18:51
d_x
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
С нами: 9541766

Репутация: 2407


По умолчанию

Ради интереса сделал бенчмарк:
PHP код:
<?php  
set_time_limit
(0);

//моя функция
function countspec($stroka)

  return 
preg_match_all('/[^a-zA-Zа-яА-ЯёЁ0-9 ]/',$stroka,$m);
}

//функция Pashkela
function countspec2($stroka) {  
   
$count=0;   
   for(
$i=0;$i<strlen($stroka);$i++) {   
       if(!
preg_match("#[\sa-zа-я0-9]#i",$stroka{$i})) $count++; 
   }  

   return 
$count;



//для бенчмарка
function microtime_float()
{
    list(
$usec$sec) = explode(" "microtime());
    return ((float)
$usec + (float)$sec);
}


$m=microtime_float();

for(
$i=0;$i<500000;$i++)
{
  
countspec('вася пупкин !@#45 траляля');
}


$tm=microtime_float()-$m;

print 
'd_x: '.$tm.' sec<br>';



$m=microtime_float();

for(
$i=0;$i<500000;$i++)
{
  
countspec2('вася пупкин !@#45 траляля');
}


$tm=microtime_float()-$m;

print 
'Pashkela: '.$tm.' sec<br>';
?>
Результат:
Код:
d_x: 4.36448502541 sec
Pashkela: 33.2198770046 sec
Моя функция в 7.5 раз быстрее)
 
Ответить с цитированием

  #10  
Старый 26.08.2009, 19:21
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

Задание 024
PHP код:
<?php

     
function getmicrotime() #функция, засекающая время
     
{
         
$time explode(" "microtime());
         return (
$time[0] + $time[1]);
     }

     
$time['first']['start'] = getmicrotime(); #время начала первого цикла 

     
for ($i 0$i 10$i++)
     {
         echo 
'1php ';
     }

     
$time['first']['end'] = getmicrotime(); #время окончания первого цикла

     
$i 0;

     
$time['second']['start'] = getmicrotime(); #время начала второго цикла

     
while ($i 10)
     {
         echo 
'w1';
         
$i += 1;
     }

     
$time['second']['end'] = getmicrotime(); #время окончания второго цикла

     
$time['first']['difference'] = $time['first']['end'] - $time['first']['start']; #время работы первого цикла
     
$time['second']['difference'] = $time['second']['end'] - $time['second']['start']; #время работы второго цикла
     
$time['difference'] = $time['first']['difference'] - $time['second']['difference']; #разница во времени между циклами

     
echo '<br>Первый скрипт: ' $time['first']['difference'] .
         
'<br>Второй скрипт: ' $time['second']['difference'] .
         
'<br>Разница: ' $time['difference']; #выводим информацию

?>
Код:
Первый скрипт: 5.5074691772461E-5
Второй скрипт: 1.978874206543E-5
Разница: 3.5285949707031E-5
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[php] On-Line Фейк mail.ru m0Hze Уязвимости Mail-сервис 45 21.08.2013 09:10
SQL-Inj Finder by mr.The [Special for antichat] [PHP] mr.The PHP 24 07.08.2009 01:30
Задания ~Fenix~ Болталка 11 13.05.2006 11:03



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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...