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

LStr1ke
30.12.2009, 14:39
$res=mysql_query("SELECT * FROM news WHERE id='".$_GET['id']."'") or die(mysql_error());
Отталкивайся от ошибки

b3
30.12.2009, 14:54
$res=mysql_query("SELECT * FROM news WHERE id='".$_GET['id']."'") or die(mysql_error());
Отталкивайся от ошибки
Ну и нафига, если там двойные ковычки, даже прочитать тяжело.
id='".$_GET['id']."'"


$res = mysql_query("SELECT * FROM news WHERE id='$_GET[id]';") or die(mysql_error());

Серёжа393
30.12.2009, 14:59
Ну и нафига, если там двойные ковычки, даже прочитать тяжело.



$res = mysql_query("SELECT * FROM news WHERE id='$_GET[id]';") or die(mysql_error());


инжект изза кавычек в этом запросе не проходит?

b3
30.12.2009, 15:21
Почему не проходит? Ты где-то видиш фильтрацию? Добавь выше строку
$_GET['id'] = addslashes($_GET['id']);

Серёжа393
30.12.2009, 15:23
Почему не проходит? Ты где-то видиш фильтрацию? Добавь выше строку
$_GET['id'] = addslashes($_GET['id']);
вот посмотри мой первый пост

http://forum.antichat.ru/showpost.php?p=1790697&postcount=14004


или ты хочеш сказать что инжект не проходил из magic_quotes и пердлагаешь добавить addslashes?

restart_05
30.12.2009, 15:31
не INT a TEXT и все равно не добавляет...

N2kroot
30.12.2009, 15:52
Эхх, то что мне дали --- работает не очень корректно, а точнее:
Пишет прочто так: Warning: unlink(/data/morph0.txt) [function.unlink]: No such file or directory in Z:\home\\www\include\set.php on line 221
1:
213
Warning: unlink(/data/morph1.txt) [function.unlink]: No such file or directory in Z:\home\\www\include\set.php on line 221
2:

А если набрать команду http:///include/set.php?del_id=1
то появится dwa [ Удалить ]
6>>>
qew [ Удалить ]
7>>>
Но после нажатия на ссылки файлы попрежнему живут и в файле avto.txt все строки на месте:(

LStr1ke
30.12.2009, 16:27
Я тебе полностью расписал свой скрипт, все что лежит в файлах, и как он работает =\
Warning: unlink(/data/morph1.txt) [function.unlink]: No such file or directory in Z:\home\\www\include\set.php
Значит что такого файла нету!!!! Посмотри как у меня скрипт понимает, что удалять =\

Но после нажатия на ссылки файлы попрежнему живут и в файле avto.txt все строки на месте
Естесвенно =\
---
Ты лучше распиши что конкретно тебе удалять? Что за файл morph0,1 и т.д.? Зачем они?

N2kroot
30.12.2009, 16:35
В общем я сделал самописный двиг сайта, он про WoW и там иды морфов для Гма.
Посередине ссылки : они дают ?id=$id и слева галлерея показывает кто добавил этот ид,какой командой писать и прочее, но если,к примеру, ид не верно указан?
При каждом добавлении записи проверяется файл avto.txt - последняя запись выносится первой на сайт и евляется $id , после обработки от админки $id считывается и если запись успешная,то появится переменная $newid = $id++; и так далее.

В итоге получается: morph.txt,morph2.txt,morph3.txt и так далее - новые записи, сделал так,поскольку неоч разбираюсь в php а MySQL игнорирую, и эти файлы содержат всю инфу,кроме ссылки и id.
Ну а ссылку и id содержит файл avto.txt --- и надо организовать удаление\правку ида, чтобы он не оставил следов ни сам( morph{$id}.txt ) ни в файле авто ( $id:$li )

-=Zhenek=-
30.12.2009, 17:59
нефига не понятно.
Давай код.

N2kroot
30.12.2009, 18:54
Morph.php(индексный файл)
<?php
$arr = file("data/morph{$id}.txt"); $i=0; foreach($arr as $line) {
$i++; list($avtor,$tema,$mess,$smess,$id,$li)=explode(":",$line);
$bd['avtor'][]=$who;
$bd['tema'][]=$tema;
$bd['mess'][]=$mess;
$bd['smess'][]=$smess; }
if($morph != 1) { $arr= file("$morph.txt"); } ?>
<div id="content">
<div id="colOne">
<h2>Трансляция</h2>
<h3>"<?php echo($mess); ?>"</h3>
<p>"<?php echo($smess); ?>" <a href="#">Комментарии…</a></p>
<p><a href="set.php">Добавить новые…</a>(пока что только админам)</p>
</div>
<div id="colTwo">
<h2>Раздел Morph</h2>
<p><em><strong>Morph</strong></em> готов к использованию.<a href="/glavforum"><strong>Обсудите</strong></a> проэкт,пожалуйста или просто можете осмотреть наш <a href="index.php">новый сайт</a>.</p>
<p>WoW Морфы. <em>.mod morph $id - морф по дисплей ID существа </em>
</a>.
</p>
<p>Наши id's:</p>
<ul>
<?php $arr2 = file("data/avto.txt"); $i=0; foreach($arr2 as $line2){
$i++; list($id,$li)=explode(":",$line2);
$bd['id'][]=$id;
$bd['li'][]=$li; }
for($i=count($arr2)-1; $i>=0; $i--) { echo ($bd['li'][$i]); }?>




</ul>

Set.php(админка,код неполный,там проверка на БД)
If ($gm =="3") {
$m=str_replace("GM","<IMG SRC='/blizz.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m);
$fh = @file("/data/avto.txt");
echo("<form name=form1 method=post action=set.php>
Имя моба:<INPUT TYPE=text NAME=tema size=35><BR>
Путь до картинки:<INPUT TYPE=text NAME=smess size=35><BR>
Команда и ID:<INPUT TYPE=text NAME=mess Value='.mod morph ? (или .modify morph ?)' size=35><BR>
<INPUT TYPE=submit value=Отправить><BR>
</form>");
$arr = file("data/avto.txt"); $i=0; foreach($arr as $line){
$i++; list($id,$li)=explode(":",$line);
$bd['id'][]=$id;
$bd['li'][]=$li; }
for($i=count($arr)-1; $i>=0; $i--) { }
$newid=$id+1;
echo("$newid");
if ($mess == '' or $tema == '' or $smess =='') {
echo ("Ахтунг Не введены главные данные ");
} else {
$avtor = $c_name;
$tema = $_POST['tema'];
$mess = $_POST['mess'];
$smess2 = $_POST['smess'];
$smess ="<img src=$smess width=155 height=146 >";
$fh = fopen("data/avto.txt","a+");
$lii="<li><a href=morph.php?id=$newid>$tema</a></li>\r\n";
fwrite($fh,"$newid:$lii");
$today = date("H:i:s");
include('config.php');
fclose($fh);
$fh2 = fopen("data/morph{$newid}.txt","w+");
fwrite($fh2,"$avtor:$tema:$mess:$smess\r\n");
fclose($fh2);
} }
print "<BR><a href='set.php?sess=close'><B>Выход</B></a>";
include("templates/index_end.htm");
}
?>
Надо сделать из админки ещё кнопочку или редактировать или удалить ненужный ид,а вот какой и как его найти?
И ещё: как орагнизовать поиск по имени темы в morph.php?

Player#1
30.12.2009, 20:55
мб заюзать бд и не еб*ть мозг?

sNt
30.12.2009, 23:34
Как вывести список всех файлов в определенной папке веба? scandir в топку, он выводит файлы диска C ваще. Ну или я её юзаю не правильно...

Player#1
30.12.2009, 23:41
Пример из мануала http://ru.php.net/manual/en/function.readdir.php

<?php
// Note that !== did not exist until 4.0.0-RC2

if ($handle = opendir('/path/to/files')) {
echo "Directory handle: $handle\n";
echo "Files:\n";

/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}

/* This is the WRONG way to loop over the directory. */
while ($file = readdir($handle)) {
echo "$file\n";
}

closedir($handle);
}
?>

LStr1ke
30.12.2009, 23:42
$dir=getcwd(); //Получаем абсолютную директорию
print_r(scandir($dir)); //Получаем список файлов

sNt
30.12.2009, 23:43
thx

Батхед
31.12.2009, 01:12
есть файл 'file.txt'
нужно чтобы из него бралась одна строка и вставлялась в перемнную $com

LStr1ke
31.12.2009, 01:17
есть файл 'file.txt'
нужно чтобы из него бралась одна строка и вставлялась в перемнную $com
хз
<?php
$arr = file("file.txt");
foreach($arr as $line) $com = $line;
//В данном случае $com будет 1 строка из файла, если в файле множество строк, то в переменную $com занесется последняя строка.
// Также перебор файла можно так:
for($i = 0;$i<count($arr);$i++)
echo "line [$i] : ". $arr[$i]."<br>"; //Тут выведется на экран "построково" файл
?>

Fepsis
31.12.2009, 01:18
есть файл 'file.txt'
нужно чтобы из него бралась одна строка и вставлялась в перемнную $com
$f = file('file.txt');
$com = trim($f[0]);

gisTy
31.12.2009, 02:27
$f = file('file.txt');
$com = trim($f[0]);

даа... открой так файл в 3 гига.

Deathdreams
31.12.2009, 02:35
даа... открой так файл в 3 гига.
Правильно.

fopen файл, fread до первого \r\n, fclose файл.

b3
31.12.2009, 04:36
fread до первого \r\n
Это новый аналог fgets ?

Deathdreams
31.12.2009, 14:05
b3
погуглил, разницы между ними не нашёл

Player#1
31.12.2009, 15:03
хреново гуглил.
fread читает n байт из всего файла.
fgets читает n байт из одной строки файла.

Инженер
31.12.2009, 15:34
Как сделать и использовать php аватар? типа такого http://s51.radikal.ru/i134/0912/60/a18faf7d0b1c.jpg

Player#1
31.12.2009, 15:43
Инженер
использовать cron для обновления инфы.
при помощи curl парсить инфу с информеров, сайто с погодой и т.п.
при помощи библиотеки GD создавать изображение.

m0Hze
31.12.2009, 15:44
Как сделать и использовать php аватар? типа такого http://s51.radikal.ru/i134/0912/60/a18faf7d0b1c.jpg
GD+парсе погоды с сторонних ресурсов+чтаццесс = имага

Инженер
31.12.2009, 15:45
эм...ясно.. спс

Батхед
31.12.2009, 19:02
нужен код,чтобы при верной подстановке и поля верные комбинации писал в файл,а плохие пропускал

spamoney
01.01.2010, 08:31
Как можно преобразовать:
$str='сообщение';
echo htmlspecialchars($str);

В нормальный текст на кириллице:
сообщение

#Wolf#
01.01.2010, 09:47
Как можно преобразовать:
$str='сообщение';
echo htmlspecialchars($str);

В нормальный текст на кириллице:
сообщение


echo htmlspecialchars_decode($str);

spamoney
01.01.2010, 10:47
Как можно преобразовать:
$str='сообщение';
echo htmlspecialchars($str);

В нормальный текст на кириллице:
сообщение

echo htmlspecialchars_decode($str);


Нет, не работает...
В браузер выводится нормальный текст, а вот если просмотреть исходный код страницы то всё те же символы...

b3
01.01.2010, 11:34
http://ua2.php.net/manual/en/function.html-entity-decode.php

superboys
01.01.2010, 11:49
Появилась проблема такого рода.
Мне надо, чтобы новости, информеры погоды и т.д. с определенного сайта сохранялись у меня на хосте, то есть если пользователь запрашивает доступ к скрипту он автоматом проверяет обновления(либо в определенное время сохраняет файлы).
Нужно т.к многие юзверы не имеют доступа к инету, и канал маленький.
Заранее спасибо за помощь!

spamoney
01.01.2010, 11:57
Как можно преобразовать:
$str='сообщение';
echo htmlspecialchars($str);

В нормальный текст на кириллице:
сообщение

echo htmlspecialchars_decode($str);


Нет, не работает...
В браузер выводится нормальный текст, а вот если просмотреть исходный код страницы то всё те же символы...http://ua2.php.net/manual/en/function.html-entity-decode.php

Ребят, html_entity_decode и htmlspecialchars_decode как я понимаю преобразует только символы (ковычки, & и т.д), но не слова...

попугай
01.01.2010, 13:18
для чего нужна pfsockopen() ?
В чем проявляется это постоянное соединение? Можете привести пример когда она лучше чем fsockopen() ? В частности при работе с http протоколом.

попугай
01.01.2010, 13:23
последний параметр у функции fsockopen() - timeout в секундах. В чем его суть?
Что будет если поставить маленький или наоборот большой?

mailbrush
01.01.2010, 13:58
последний параметр у функции fsockopen() - timeout в секундах. В чем его суть?
Что будет если поставить маленький или наоборот большой?
timeout - время ожидания ответа от сервера

попугай
01.01.2010, 14:29
то есть если поставить минимальный таймаут, то скрипт не будет дожидаться ответа от сервака, если тот тормозит?

#Wolf#
01.01.2010, 14:37
Ребят, html_entity_decode и htmlspecialchars_decode как я понимаю преобразует только символы (ковычки, & и т.д), но не слова...
b3 же дал ссылку тебе.

$str='твои_говносимволы';

function html_entity_decode_utf8($string)
{ static $trans_tbl;
$string = preg_replace('~&#x([0-9a-f]+);~ei', 'code2utf(hexdec("\\1"))', $string);
$string = preg_replace('~&#([0-9]+);~e', 'code2utf(\\1)', $string);
if (!isset($trans_tbl))
{
$trans_tbl = array();

foreach (get_html_translation_table(HTML_ENTITIES) as $val=>$key)
$trans_tbl[$key] = utf8_encode($val);
}
return strtr($string, $trans_tbl);
}
function code2utf($num)
{
if ($num < 128) return chr($num);
if ($num < 2048) return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
if ($num < 65536) return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
if ($num < 2097152) return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
return '';
}
echo html_entity_decode_utf8($str);


и вот


$string='твои_говносимволы';

function utf8_replaceEntity($result){
$value = (int)$result[1];
$string = '';

$len = round(pow($value,1/8));

for($i=$len;$i>0;$i--){
$part = ($value & (255>>2)) | pow(2,7);
if ( $i == 1 ) $part |= 255<<(8-$len);

$string = chr($part) . $string;

$value >>= 6;
}

return $string;
}

function utf8_html_entity_decode($string){
return preg_replace_callback(
'/&#([0-9]+);/u',
'utf8_replaceEntity',
$string
);
}
;
$string = utf8_html_entity_decode($string,null,'UTF-8');
header('Content-Type: text/html; charset=UTF-8');
echo $string;

Gifts
01.01.2010, 14:43
spamoney echo html_entity_decode('сообщение',null, 'cp1251');

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

Инженер
02.01.2010, 15:24
Вопрос мне кажется очень тупой, но лучше задам ,чтоб потом не тупить...есть ПХП скрипт авы для контакта, на какой бесплатный хост его лучше залить, и как потом использовать?:)Заранее спасибо.

Deathdreams
02.01.2010, 15:45
Инженер, Denwer.ru

Инженер
02.01.2010, 15:49
Deathdreams, денвер у меня есть, т.е. заливаешь php файлы на локалхост, и с помощью денвера их запускаешь, и всё?и аватар будет обновляться?

Deathdreams
02.01.2010, 18:04
Инженер
Да, http://localhost/*имяфайла*.php
Если скрипт написан правильно, аватар у вас обновится.

mailbrush
02.01.2010, 18:11
Лучше использовать чистый PHP:
[code]$ php script.php[code]
Ибо если делать через хостинг / веб-сервер, скрипт остановится через некоторое время...

Insane bboy
02.01.2010, 18:45
у меня такой вот вопрос:
какие требования(как правило) к кандидатом на вакансию пхп кодера, и насколько востребованы вообще специалисты в этой областе сейчайс)

Kusto
02.01.2010, 18:47
у меня такой вот вопрос:
какие требования(как правило) к кандидатом на вакансию пхп кодера, и насколько востребованы вообще специалисты в этой областе сейчайс)
http://rabota.mail.ru/vac_search/?go=1&query=php


нифигасе- я там вакансию нашел)) http://rabota.mail.ru/vacancy/1210442/

Инженер
02.01.2010, 18:52
при попытке запустить пхп выдает такое ошибку
1262443695.22 Аторизация ВКонтакте...
Fatal error: Call to undefined function curl_init() in Z:\home\localhost\www\php\index.php on line 35
кстати почему крякозябли вместо слов?

Insane bboy
02.01.2010, 18:56
не подключен курл и проблемы со шрифтами?

Kusto
02.01.2010, 18:58
при попытке запустить пхп выдает такое ошибку
1262443695.22 Аторизация ВКонтакте...
Fatal error: Call to undefined function curl_init() in Z:\home\localhost\www\php\index.php on line 35
кстати почему крякозябли вместо слов?


кодировка неподдерживаеться а в UTF-8 твои кракозяблы ничто иное как "Аторизация ВКонтакте.". по поводу ошибки- экстрасенси в отпуске и никто непоймет что у тя там за косяк в 35 линии кода

Инженер
02.01.2010, 18:59
там идет соединение
$ch = curl_init("http://vkontakte.ru/login.php");
и ещё ,как подключить тогда курл?

Insane bboy
02.01.2010, 19:14
смотри мой предедущий пост, либо у тебя курл в php.ini не подключен либо вообще отсутсвует, посмотри в phpinfo(); есть ли там упоминание о курле?
теперь как его подключить, вначале посмотри в папке ext(которая в папке куда ты пхп устонавливал) если файлик php_curl.dll?
если есть то надо раскоментировать следующие строки:
[PHP_CURL]
extension=php_curl.
в php.ini

Инженер
02.01.2010, 19:18
у меня библиотеки скачанные с сайта Music Sig`a ,ну бот для контакта, думаю знаете, там для работы пхп скриптов надо качать библиотеки, вот они у меня и стоят. и в том файле строки раскоменчены

Insane bboy
02.01.2010, 19:34
надо всего лишь библиотеку курла,бота для контакта к сожелению не знаю) а судя по ошибке библиотека курла не стоитт, проще всего посмотреть в phpinfo(); если там нет упоминания о curl то значит он не подключен и чтоб скрипт заработал надо его подключить)

Инженер
02.01.2010, 19:48
Спасибо! Все работает!, только все равно ошибка авторизации вылазит

Insane bboy
02.01.2010, 19:54
ну насчет авторизаций вконтакте ничем подсказатьт не могу)

olishort
02.01.2010, 19:57
а поискать по форуму не пробывали? я выкладывал рабочую версию
http://forum.antichat.ru/showthread.php?p=1760495#post1760495

Инженер
02.01.2010, 20:01
С авторизацией уже разобрался, только данные на аве не обновляються, это потому что с локалхоста запускаю?

olishort
02.01.2010, 20:04
всм данные на аве?

Инженер
02.01.2010, 20:05
угу

olishort
02.01.2010, 20:06
что угу? какие данные на аве? я не понял

Инженер
02.01.2010, 20:10
Сколько осталось до др, до коцна света)),, заявки в друзья, ЛС, и последнее обновление(правда оно работает но почемуто обображает на час меньше)

Insane bboy
02.01.2010, 20:55
у меня было такое когда пользовался украинским хостингом, все отображалось толи на час больше толи меньше, но очень часто меня озадачивало)

Инженер
02.01.2010, 20:58
а какие есть бесплатыне хостинги для этого дела?

Insane bboy
02.01.2010, 21:38
для курла есть) называется локалхост) я сколько курлом не пользуюсь, все скипты на локалхосте)в том числе и для работы вконтакте)просто давно не работал с контактом, там авторизация теперь другая и пока мне не до этого.

Инженер
02.01.2010, 22:03
хм....просто авторизация проходит, и меняеться только время последнего обновления:( причем как я уже писал, указывается на час меньше от моего(живу во втором часовом поясе)

Insane bboy
02.01.2010, 22:12
второй это какой? я в московском живу) просто дополни скрипт чтоб час прибавлял, но все равно скрипты с курлом я исполняю на локалхосте, потому что на бесплатных хостингах обычно ограничения) выложи код, подскажу)

Insane bboy
02.01.2010, 22:14
и вообще если авторизация проходит и все нормально, то это уже сто процентно не проблемы курла, это просто неправильные запросы к контакту)

Insane bboy
02.01.2010, 22:27
и вообще если авторизация проходит и все нормально, то это уже сто процентно не проблемы курла, это просто неправильные запросы к контакту)

Insane bboy
02.01.2010, 22:52
и вообще если авторизация проходит и все нормально, то это уже сто процентно не проблемы курла, это просто неправильные запросы к контакту)

almaz_ko
02.01.2010, 23:29
Извените за то что не тут написал( Мне нужна помошь. Дайте скрипт редрикета на мой сайт) на html

Deathdreams
02.01.2010, 23:49
Извените за то что не тут написал( Мне нужна помошь. Дайте скрипт редрикета на мой сайт) на html
Antichat - форум экстрасенсов

ubuntu
03.01.2010, 00:09
и буду благодарен, если кто нибудь поможет ;)
есть два текстовых файла, 1ый со списком прокси(вида ip:port)
2ый со списком запросов поисковика(в каждой строке отдельный запрос)

нужно взять прокси зайти в гугл, взять 1 запрос, найти его, взять 2ой запрос найти его, взять 3, 4, 5. после 5ого запроса поменять прокси, и дальше выполнять запросы.
сделал чтоб из файла выдергивал и искал, а вот в цикл загнать не могу(чтоб менял прокси, после каждого 5ого запроса)
вот то, что сделал:


<?php
// The following code is required to properly run Xedant.com Human Emulator
require("../Templates/xedant_human_emulator.php");

$f = fopen('proxy.txt','r');
$tmp = trim(fgets($f,2048));

$f = fopen('num.txt','r');
$tmp1 = trim(fgets($f,2048));

$browser->enable_proxy("internet",$tmp);
$browser->navigate('http://google.ru/');
$browser->wait_for(240,1);

$input->set_value_by_name('q', $tmp1);

$mouse->click('369','216');
$browser->wait_for(240,1);

// Quit
$app->quit();
?>

Deathdreams
03.01.2010, 00:14
ubuntu Скрипт не полный.
Выложите все классы, которые в нём используются.

wildshaman
03.01.2010, 00:28
Извените за то что не тут написал( Мне нужна помошь. Дайте скрипт редрикета на мой сайт) на html

<meta http-equiv="refresh" content="3; url=http://www.yoursite.com">

Andres
03.01.2010, 00:55
Как осуществляется вывод информации с базы данных по категориям и подкатегориям?
Де можно информацию почитать?
Мне нужна именно эта часть, типа дерева.

Andres
03.01.2010, 01:21
Нуу ребятки помогите...

wildshaman
03.01.2010, 01:35
Нуу ребятки помогите...
Смотря в каком виде она хранится.
К примеру, с категориями
id name pod
айди категории, ее название
если pod=0 - то категория родительская, ее выводим
Если pod отлично от нуля, то pod - айди дочерней категории (под категории).

Вывод прост:
сначала перем в цикле все категории, у которых pod=0
Затем перебираем в цикле все категории, у когорых pod=родительской.

Вообще, посмотри, как организовано в DLE

Andres
03.01.2010, 01:47
Я могу сделать только категорию и подкатегорию, а подкатегорию подкатегории немогу, а мне еще дальше надо..
блин.. бред получаеться.. я тупо спутался...

Andres
03.01.2010, 01:49
Например, в цикле вывел с базы ссылками

Музыка

Книги

Фильмы

Музыка имеет id=1, Книги=2 и тд

а мне еще надо жанр, исполнитесль, альбом и.д.
оно все спуталось...
......
кстати а если словами сделать?
например:
mysite/index.php?section=music
mysite/index.php?section=books
mysite/index.php?section=films
а не mysite/index.php?id=1
и т.д

или это сложно и бредово? я не долго с ПХП(

wildshaman
03.01.2010, 01:49
Я могу сделать только категорию и подкатегорию, а подкатегорию подкатегории немогу, а мне еще дальше надо..
блин.. бред получаеться.. я тупо спутался...
посмотри ДЛЕ

function CategoryNewsSelection($categoryid = 0, $parentid = 0, $nocat = TRUE, $sublevelmarker = '', $returnstring = '') {
global $cat_info, $user_group, $member_id;

$allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );
$spec_list = explode( ',', $user_group[$member_id['user_group']]['cat_add'] );
$root_category = array ();

if( $parentid == 0 ) {
if( $nocat ) $returnstring .= '<option value="0"></option>';
} else {
$sublevelmarker .= '&nbsp;&nbsp;&nbsp;';
}

if( count( $cat_info ) ) {

foreach ( $cat_info as $cats ) {
if( $cats['parentid'] == $parentid ) $root_category[] = $cats['id'];
}

if( count( $root_category ) ) {
foreach ( $root_category as $id ) {

if( $allow_list[0] == "all" or in_array( $id, $allow_list ) ) {

if( $spec_list[0] == "all" or in_array( $id, $spec_list ) ) $color = "black";
else $color = "red";

$returnstring .= "<option style=\"color: {$color}\" value=\"" . $id . '" ';

if( is_array( $categoryid ) ) {
foreach ( $categoryid as $element ) {
if( $element == $id ) $returnstring .= 'SELECTED';
}
} elseif( $categoryid == $id ) $returnstring .= 'SELECTED';

$returnstring .= '>' . $sublevelmarker . $cat_info[$id]['name'] . '</option>';
}
$returnstring = CategoryNewsSelection( $categoryid, $id, $nocat, $sublevelmarker, $returnstring );
}
}
}
return $returnstring;
}

Andres
03.01.2010, 01:52
оке..пасиб!

Andres
03.01.2010, 02:05
эх.. ничего не ясно((

m0Hze
03.01.2010, 02:10
эх.. ничего не ясно((
А ничего и не будет ясно,если сразу браться за сложное.Для начала сделай то,что можешь,затем будет намного проще осуществлять свои задумки,чем дальше - тем сложнее,действуй по этой схеме,и не ошибешься.

Andres
03.01.2010, 02:14
А ничего и не будет ясно,если сразу браться за сложное.Для начала сделай то,что можешь,затем будет намного проще осуществлять свои задумки,чем дальше - тем сложнее,действуй по этой схеме,и не ошибешься.
Если сделаю слишком просто - потом придется все переделывать, и работы будет очень-очень много.
Хочу сейчас въехать в это, потом легче будет намного)

LStr1ke
03.01.2010, 02:44
2Andres
Я давным давным давно делал сталкивался с похожей ситуацией...
Просто создал контрольный файл например view.php

<?php

$cat = $_GET['cat'];

switch($cat) {

case "music":
echo "Music category";
break;

case "book":

echo "Books category";
if(!isset($_GET['sort']) {
//Тут например выводишь инфу по дефолту для данный категории...
}else {
switch($_GET['sort']) {
case "autor": echo "Вывод по авторам";
// SQL Request
break;
case "type": echo "Вывод по жанрам";
// SQL Request
break;
default: echo "Неверные данные";
break;
}

break;

case "mouvie":
echo "Mouvie category";
break;

default: echo "Page not found";
break;
}
?>

Ссылки выглядели так: view.php?cat=book&sort=autor
Ну и так далее... Это конечно поизвращенному и статично. Но мне хватило. Надеюсь вкурил )

Andres
03.01.2010, 02:48
2Andres
Я давным давным давно делал сталкивался с похожей ситуацией...
Просто создал контрольный файл например view.php

<?php

$cat = $_GET['cat'];

switch($cat) {

case "music":
echo "Music category";
break;

case "book":

echo "Books category";
if(!isset($_GET['sort']) {
//Тут например выводишь инфу по дефолту для данный категории...
}else {
switch($_GET['sort']) {
case "autor": echo "Вывод по авторам";
// SQL Request
break;
case "type": echo "Вывод по жанрам";
// SQL Request
break;
default: echo "Неверные данные";
break;
}

break;

case "mouvie":
echo "Mouvie category";
break;

default: echo "Page not found";
break;
}
?>

Ссылки выглядели так: view.php?cat=book&sort=autor
Ну и так далее... Это конечно поизвращенному и статично. Но мне хватило. Надеюсь вкурил )
Плюсанул) Пасиб, ща разберу)

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

wildshaman
03.01.2010, 02:50
Ну Страйк и наркоман(
Чтобы добавить категорию - надо лезть на ftp и павить файлы? Для подподкатегорий надо еще кейсы вставлять? олллошненько

Andres
03.01.2010, 02:59
Ну Страйк и наркоман(
Чтобы добавить категорию - надо лезть на ftp и павить файлы? Для подподкатегорий надо еще кейсы вставлять? олллошненько
Можешь тогда рассказать че подучить надо для хорошего функционирования?

Я 7 дней с PHP(

Я сначала думал сделать типа под каждый раздел, подраздел подподраздел и тд таблица, и так выводить через printf
Но смог только вывести раздел и подраздел( далее торможу..(

LStr1ke
03.01.2010, 03:04
Ну Страйк и наркоман(
Чтобы добавить категорию - надо лезть на ftp и павить файлы? Для подподкатегорий надо еще кейсы вставлять? олллошненько
Вообще-то я написал, что делал статично. Т.е. я заранее знал, что не нужно будет добавлять категории.
Сейчас бы я наверное первым делом бы структурировал БД, таблицу с именами категорий, таблицы категорий. При добавлении категории вносилась инфа в таблицу имен и создавалась таблица данной категории.
А на вывод написал бы функцию универсальную каждой категории =\
например на вход функции - имя категории и как сортировать.

Бональный вариант:
function showCat($name,$sort,$sort_type) {
mysql_query("SELECT * FROM $name ORDER by $sort $sort_type");
}

Вызов примерно такой showCat("book","autor","DESC");

Естественно под нужды можно усложнить функцию до вывода конкретных полей (создание подкатегории)... Если честно еще подобных заказов не было и особо голову не ломал над этим

Andres
03.01.2010, 03:08
ааааааааааааааа
уже третий час туплю.. надо что-то делать полюбому...

ubuntu
03.01.2010, 03:21
а есть написанный скрипт для проверки прокси для определенного сайта, допустим, задал в текстовике проксей, написал сайт в скрипте, а он пытается зайти с каждым прокси и сверить title, если тру то записывает в файл.

Andres
03.01.2010, 03:32
может условные операторы использовать?
if (section=1)
{
echo .....
}
else if(...)
{
...
}
....

что скажете?
потом сложно будет привести это в людской вид? страниц и контента будет много.. сразу говорю..

LStr1ke
03.01.2010, 05:55
может условные операторы использовать?
if (section=1)
{
echo .....
}
else if(...)
{
...
}
....

что скажете?
потом сложно будет привести это в людской вид? страниц и контента будет много.. сразу говорю..
Ты каждый раз будешь сверять $section - лучше использовать switch();

$section = 1;
switch($section) {
case 1: echo "Section - 1";
break;
case 2: echo "Section - 2";
break;
case 3: echo "Section - 3";
break;
}

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

Andres
03.01.2010, 15:09
Ты каждый раз будешь сверять $section - лучше использовать switch();

$section = 1;
switch($section) {
case 1: echo "Section - 1";
break;
case 2: echo "Section - 2";
break;
case 3: echo "Section - 3";
break;
}

Так конечно можно, если тебе по условию не нужно добавлять новые категории из админки.
Thanks!

Komyak
03.01.2010, 16:33
Подскажите пожалуйста где я допустил ошибку:

for ($y = 1; $y <= $ammount; $y++)
{
$login = login();
$password = '123456';

post ('http://toodoo.ru/account/logout',null,'http://toodoo.ru/account/');

$result = post('http://toodoo.ru/account/signup','profile_nick_name='.$login.'&user_registration_from=&profile_is_female=false&user_email='.$login.'@antireg.ru&user_password='.$password.'&user_password_repeat='.$password.'&agree=1&x=0&y=0','http://toodoo.ru/account/signup');

post ('http://toodoo.ru/account/logout',null,'http://toodoo.ru/account/');


$hostd="http://".$login.".antireg.ru";
$resconf=post($hostd,null,'http://toodoo.ru');
preg_match_all('|<a target=\"_blank\" href=\"(.*)code%3D(.*?)%253D%253D\">|is',$resconf,$logins);

fwrite($fh, $login."@antireg.ru\n");
fwrite($logzz,$logins[2][0]."\n");
}
fclose($fh);
fclose($logzz);

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

b3
03.01.2010, 18:58
Зачем ты в регулярке экранируеш двойные ковычки, если само выражение в одинарных.

Komyak
03.01.2010, 20:02
Зачем ты в регулярке экранируеш двойные ковычки
Если честно, то думал что на регулярки это правило не распространяется.СПС теперь буду знать.
Если кому не сложно, то посмотрите почему не могу получить хеш из ссылки.
Когда выношу preg_match из цикла(испытаваю регулярку), то всё нормально работает и выдаёт результат. Но когда совмещаю регу с подтверждением, то print_r ничего не выдаёт.

a1ertso
03.01.2010, 20:20
Есть ли у кого нибудь скрипт который распознает ник:хеш:мыло ? Есть база, а расписать все красиво и удобно не получается.

m0Hze
03.01.2010, 20:23
list($nick,$hash,$email) = explode(':',$str);

Инженер
04.01.2010, 00:43
Можете написать код, который отображал бы, например на аватаре сколько осталось до дня рождения др. дат. Заранее спасибо.

maximka_18
04.01.2010, 01:45
Здравствуйте!!!
У меня собственно проблема, девушке задали написать на PHP страничку, чтобы она генерировала HTML, в HTML должно быть 2 блока, верхний и нижний. в верхнем постоянные данные, в нижнем переменные.
Теперь о нижнем блоке. PHP должен генерить последовательные цифры, типа 001, 002, 003. Нужно еще задать символы между цифрами, т.е. 0*0*1, 0*0*2, 0*0*3.... и т д.
PHP должен генерить HTML, в одном html должно быть 20 групп цифр (0*0*1 - группа), каждая группа с новой строчки, и так генерит до указанного числа(если с 001 до 010, то 0*0*1 ---------0*1*0)

--------------------------------------------------------------------------
Альтернативное обьяснение проблемы.
пример HTML:
<
вася пупкин. {пермаментная информация}

0*0*1
0*0*2
0*0*3
...
0*2*0{переменная инфа, которая задается диапозоном чисел, и знаками между ними}

Короче типа такого... Препод сказал что если сделает, у нее автомат)

Gifts
04.01.2010, 04:32
maximka_18 думать лень, потому как-то так <?PHP
$const = 'Vasya Pupkin';

$from = 0;
$to = 20;
$seporator = '*';

echo $const."<br /><br />\r\n";
for ($i=$from; $i<=$to; $i++) echo implode($seporator, str_split(str_pad($i,3,'0',STR_PAD_LEFT),1))."<br/>\r\n";

Ponchik
04.01.2010, 07:36
А вот и йа
Написал парсер, через CURL через проксеки запрашиваю пагу, и вот CURL коннектится к проксеку, запрашивает пагу и прокс молчит, CURL ждёт ответа пока я руками не обрываю коннект в фаере =\
Пока я спал он часов 5 ждал ответ =\
Чё делать? Как сказать CURL'у, что если 5 секунд нет ответа - обрывать коннект
Не путать с таймаутом на коннект, он коннектится, но ответ ждёт :o

suser
04.01.2010, 11:09
А вот и йа
Написал парсер, через CURL через проксеки запрашиваю пагу, и вот CURL коннектится к проксеку, запрашивает пагу и прокс молчит, CURL ждёт ответа пока я руками не обрываю коннект в фаере =\
Пока я спал он часов 5 ждал ответ =\
Чё делать? Как сказать CURL'у, что если 5 секунд нет ответа - обрывать коннект
Не путать с таймаутом на коннект, он коннектится, но ответ ждёт :o

$timeout =10;
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

Komyak
04.01.2010, 12:30
После того как запускаю постер или парсер на серваке ~после 1к адресов, сервер начинает еб...ь и работает очень медленно. как понимаю он кэширует результат всеё работы и после такого количества естественно начинает притормаживать- естественный вопрос- Как можно этого избежать, пока хостер меня не выгнал?

maximka_18
04.01.2010, 12:58
Vasya Pupkin


Fatal error: Call to undefined function: str_split() in z:\home\test1.ru\www\index.php on line 9

LStr1ke
04.01.2010, 14:01
Vasya Pupkin


Fatal error: Call to undefined function: str_split() in z:\home\test1.ru\www\index.php on line 9
У тебе PHP4 установи PHP5

Gifts
04.01.2010, 19:07
maximka_18 Вот для версии 4+<?PHP
$const = 'Vasya Pupkin';

$from = 0;
$to = 20;
$seporator = '*';

echo $const."<br /><br />\r\n";
for ($i=$from; $i<=$to; $i++) echo implode($seporator, preg_split('//',str_pad($i,3,'0',STR_PAD_LEFT)))."<br/>\r\n";

Инженер
04.01.2010, 19:48
напишите плз код, который граббит статус скайпа и аськи.

m0Hze
05.01.2010, 00:54
<?php

/**
* @author m0hze
* @copyright 2010
*/

class test extends text{
function guss(){
global $text;
echo $text->guss();
}
}
class text{
function guss(){
echo 'Hello';
}
}
$text = new text;
$test = new test;
$text->guss();
?>

Прописывать во всех функциях global $text; очень не хочеться,можно ли как то глоболизовать $text для всего класса test?

Gifts
05.01.2010, 01:45
m0Hze Вопрос, а что вы ожидаете получить?

m0Hze
05.01.2010, 01:58
m0Hze Вопрос, а что вы ожидаете получить?
Я ожидаю получить следующее.
Есть туева хуча классов,все они инклудяться в одном файле.И в некоторых из них,используються сторонние классы,а так как переменная "не глобальна", соответственно возникают ошибки,а в каждом классе,в каждой ф-ции прописывать global $class_takoi_to; не очень кошерно и удобно,вот я и спрашиваю,возможно есть способ,глобализовать переменную внутри всего класса сразу,для всех функций?

Gifts
05.01.2010, 02:18
m0Hze Если вы расширяете один класс другим - все методы родителя будут описаны в дочернем классе, если метод перегружен дочерним - всегда можно вызвать родительский. Если нет - создавайте финальный класс и уже в нем создавайте экземпляры всех нужных для работы классов.

m0Hze
05.01.2010, 02:22
m0Hze Если вы расширяете один класс другим - все методы родителя будут описаны в дочернем классе, если метод перегружен дочерним - всегда можно вызвать родительский. Если нет - создавайте финальный класс и уже в нем создавайте экземпляры всех нужных для работы классов.
Нет-нет,это я в примере написал дочерним классом,на деле все обстоит не так,все крассы -обсалютно никак не связаны.Так что,нет способа оглобализировать один класс в другом?
Если такое можно провернуть через extends, то пожауйста объясни как,ибо у меня что-то неособо получаеться :/

Gifts
05.01.2010, 02:45
m0Hze Возвращаясь к вашему же примеру - вы "глобализуете" не класс, а экземпляр этого класса, что мешает создавать их уже в конечном классе?

class finalclass {
public $res = '';
function __construct()
{
$this->curl = new mycurl();
$this->some_class = new some_class();
}
function login($login,$password)
{
$this->res = $this->curl->post('http://some_addr', "login=$login&password=$password");
if (!$this->res) return 0;
return 1;
}
function fetch()
{
return $this->some_class->fetch($this->$res);
}
}
$work = new finalclass();
$work->login('tratata','12345');
// И так далее

m0Hze
05.01.2010, 03:09
m0Hze Возвращаясь к вашему же примеру - вы "глобализуете" не класс, а экземпляр этого класса, что мешает создавать их уже в конечном классе?

class finalclass {
public $res = '';
function __construct()
{
$this->curl = new mycurl();
$this->some_class = new some_class();
}
function login($login,$password)
{
$this->res = $this->curl->post('http://some_addr', "login=$login&password=$password");
if (!$this->res) return 0;
return 1;
}
function fetch()
{
return $this->some_class->fetch($this->$res);
}
}
$work = new finalclass();
$work->login('tratata','12345');
// И так далее

Такой вариант мной рассматривался,и пока что именно его я и использую.Но намного удобнее,когда отдельный класс вынесен в отдельную переменную,а не в метод в этом классе.Прост я много где могу использовать 1 класс,и в каждом его инитиализировать не могу,инитиализирую один раз,и глобализирую в каждой ф-ции :(
Что оооочень не удобно.Вот и подумал,что можно глобализировтаь для всего класса сразу,пнадеялся ^_^.
Спасибо!

Ser_Djuk
05.01.2010, 16:59
помогите пожалуйста, дайте какой-то скрипт для массовой рассылки спама, email сообщений

geforse
05.01.2010, 18:50
Как вызвать 404-ую ошибку ?

Пробовал так...
header("HTTP/1.0 404 Not Found");
header('Status: 404 Not Found');
header('HTTP/1.0 404 Not Found');

...не получается :(

geforse
05.01.2010, 19:19
Привет всем, я в пхп не шарю, но вот понадобился скриптик что бы постоянно оставаться онлайн вконтакте, может у кого-то есть ?
Спасибо! :)

Держи (http://geforse.name/coding/vechnyj-onlajn-vkontakte/)

Ребят мне помогите с 404 ...

Deathdreams
05.01.2010, 19:39
geforse
@header("HTTP/1.1 404 Not Found");

Попробуй так

geforse
05.01.2010, 19:47
Deathdreams, не работает.

Таким кодом добился того, что в Internet Explorer всё работает (появляется 404 ошибка), а в лисе по прежнему нет :(


header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header('HTTP/1.0 404 Not Found');

Joker-jar
05.01.2010, 19:53
exit; после
header('HTTP/1.0 404 Not Found');
делаешь?

geforse
05.01.2010, 20:01
exit; после
header('HTTP/1.0 404 Not Found');
делаешь?

не помогает

ubuntu
05.01.2010, 20:28
есть файл с акками от контакта(разделитель : )
нужно на выходе получить два файла. 1ый - с логинами, 2ой - с паролями.
ps где то видел. после часа поиска так и не смог найти,решил спросить у вас.

olishort
05.01.2010, 20:43
есть файл с акками от контакта(разделитель : )
нужно на выходе получить два файла. 1ый - с логинами, 2ой - с паролями.
ps где то видел. после часа поиска так и не смог найти,решил спросить у вас.

лови

<?php
set_time_limit(0);

//разделитель между емайлом и паролем
$divider = ';';

$accounts_file = file_get_contents('accounts.txt');

$explode_accs = explode("\n", $accounts_file);

foreach($explode_accs as $k => $v){
$explode_acc = explode($divider, $v);

$email = $explode_acc[0];
$pass = $explode_acc[1];

$f = fopen('emails.txt', 'ab');
fwrite($f, $email."\r\n");
fclose($f);

$f = fopen('passes.txt', 'ab');
fwrite($f, $pass."\r\n");
fclose($f);
}
?>

m0Hze
05.01.2010, 20:52
<?php

/**
* @author m0hze
* @copyright 2010
*/

class test extends text{
function guss(){
global $text;
echo $text->guss();
}
}
class text{
function guss(){
echo 'Hello';
}
}
$text = new text;
$test = new test;
$text->guss();
?>

Прописывать во всех функциях global $text; очень не хочеться,можно ли как то глоболизовать $text для всего класса test?
Up!

ubuntu
05.01.2010, 20:57
лови

спасибо большое :)

Инженер
05.01.2010, 21:33
можете написать скрипт на отображение статуса в аське и скайпе? заранее спс.

попугай
05.01.2010, 21:46
можете написать скрипт на отображение статуса в аське и скайпе? заранее спс.


Не знаю зачем тут php, но если ты это имеешь ввиду, то

http://www.icq.com/features/web/indicator.html
http://www.skype.com/intl/ru/share/buttons/

Nosfer
05.01.2010, 21:53
Есть массив, состоящий из различный урлов.

Пример:

http://bonner.wordpress.com/2006/01/31/iaea-report-says-iran-has-bomb-plans/
http://bonner.wordpress.com/2006/02/19/iran-nuclear-weapons-ok-training-suicide-bombers/
http://bonner.wordpress.com/2006/03/08/the-iran-situation/ http://bonner.wordpress.com/2006/04/13/ahmadinejad-be-angry-at-us-and-die/
http://bonner.wordpress.com/2006/04/14/iran-president-israel-will-be-annihilated/
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1190470
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1190863
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1191094
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1193230
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1195333
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1198585
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1199709
http://tuskandtalon.blogspot.com/2005_05_01_archive.html
http://tuskandtalon.blogspot.com/2005_09_01_archive.html
http://tuskandtalon.blogspot.com/2005_10_01_archive.html
http://mainstreamiowan.blogspot.com/

Нужно произвести уникализцаю ТОЛЬКО по доменному имени, т.е. на выходе получить массив с 4мя элементами, соответсвующими первому совпаденю, в данном случае это будет:

http://bonner.wordpress.com/2006/01/31/iaea-report-says-iran-has-bomb-plans/
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1190470
http://tuskandtalon.blogspot.com/2005_05_01_archive.html
http://mainstreamiowan.blogspot.com/

Есть идеи?

REBUUS
05.01.2010, 21:59
вырезать в регулярных выражениях все что находиться между // и / и потом это сравнивать

Nosfer
05.01.2010, 22:00
вырезать в регулярных выражениях все что находиться между // и / и потом это сравнивать
каким образом предлагаешь сравнивать? если preg_match тот все теже дубли подойдут под регулярку

N2kroot
05.01.2010, 22:01
Запиши в файл, а далее
$arr = file("твой файл"); $i=0;
$text=str_replace("http://",'',$text);
foreach($arr as $line){
$i++; list($adress,$kyda,$kyda2)=explode("/",$line);
$bd['adress'][]=$adress;
$bd['kyda'][]=$kyda; }
$bd['kyda2'][]=$kyda2;
for($i=count($arr)-1; $i>=0; $i--) { echo($bd['adress'][$i]); echo("<br>");
echo($bd['kyda'][$i]); echo("<br>");
echo($bd['kyda2'][$i]); echo("<br>");
}

Инженер
05.01.2010, 22:01
попугай, мне надо именно на пхп, ведь я себе на аву хочу..

Gifts
05.01.2010, 22:14
Nosfer $str = 'http://bonner.wordpress.com/2006/01/31/iaea-report-says-iran-has-bomb-plans/
http://bonner.wordpress.com/2006/02/19/iran-nuclear-weapons-ok-training-suicide-bombers/
http://bonner.wordpress.com/2006/03/08/the-iran-situation/ http://bonner.wordpress.com/2006/04/13/ahmadinejad-be-angry-at-us-and-die/
http://bonner.wordpress.com/2006/04/14/iran-president-israel-will-be-annihilated/
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1190470
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1190863
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1191094
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1193230
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1195333
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1198585
http://www.angelfire.com/ky/kentuckydan/CommitteesofCorrespondence/index.blog?entry_id=1199709
http://tuskandtalon.blogspot.com/2005_05_01_archive.html
http://tuskandtalon.blogspot.com/2005_09_01_archive.html
http://tuskandtalon.blogspot.com/2005_10_01_archive.html
http://mainstreamiowan.blogspot.com/';

preg_match_all('~https?://([^/]+).*~i', $str, $out);
$out = array_values(array_combine($out[1],$out[0]));
var_dump($out);

Nosfer
06.01.2010, 11:11
Есть массив, состоящий из урлов:


http://yandex.ru/a/a/a/
http://yandex.ru/
http://yandex.ru/b/
http://yandex.ru/a/index.php?feuhfbheri
http://yandex.ru/index.php?feuhfbheri


Необходимо его отсортировать не просто по длине, а по кол-ву вхождений символа "/" , дабы на выходе получить такой порядок:


http://yandex.ru/
http://yandex.ru/index.php?feuhfbheri
http://yandex.ru/b/
http://yandex.ru/b/index.php?feuhfbheri
http://yandex.ru/a/a/a/


Есть идеи?

N2kroot
06.01.2010, 14:12
http://yandex.ru/b/
http://yandex.ru/b/index.php?feuhfbheri
Одно и тоже у скрипта...

Gifts
06.01.2010, 16:19
N2kroot С учетом длины строки, для одинаковых по количеству / урлов. Для больших списков - не советую применять, так как скорость будет не ахти $str = 'http://yandex.ru/a/a/a/
http://yandex.ru/
http://yandex.ru/b/
http://yandex.ru/a/index.php?feuhfbheri
http://yandex.ru/index.php?feuhfbheri';

$arr = explode("\n",$str);

function cmp($a,$b)
{
if (substr_count($a,'/') > substr_count($b,'/')) return 1;
elseif (substr_count($a,'/') < substr_count($b,'/')) return -1;
if (strlen($a)>strlen($b)) return 1;
return -1;
}

usort($arr,'cmp');
var_dump($arr);

olishort
06.01.2010, 17:58
Не знаю зачем тут php, но если ты это имеешь ввиду, то

http://www.icq.com/features/web/indicator.html
http://www.skype.com/intl/ru/share/buttons/


а еще и при том) возможно) при помощи сокетов или парсера) реализовано уже

.::f-duck::.
06.01.2010, 18:54
<?php
if (!$_POST['draw']):
?>
<form name="draw_ub" method="post" action="index.php">
<input type="text" name="name" />
<input type="text" name="text" />
<input type="submit" name="draw" value="draw" />
</form>
<?php
else:
Header("Content-type:image/png");//Какбэ намекаем браузеру,что выводить надо картинку (убери эту строку и запусти скрипт. Ну,как? Понравилось? :-D
function check_len($to_check)//ф-ция,для проверки количества сиволов ( не должно превышать 58)
{
if(strlen($to_check)>58)
{
Header("Content-type:image/png");//Какбэ намекаем браузеру,что выводить надо картинку (убери эту строку и запусти скрипт. Ну,как? Понравилось? :-D
$imag=imageCreateFromJPEG("images/fail.jpeg");
ImageJpeg($imag);
exit();
}
}

$form="<input type='text' name='get_bb' value='{$_SERVER['HTTP_HOST']}.{$file_dir}' />";
$username=(string)$_POST['name'];//%username
$text=(string)$_POST['text']; //Что сказал чел?
check_len($username); //Проверяем 1 вводимую строку
check_len($text);//Проверяем 2 вводимую строк
$image=imageCreateFromPng("images/sample.png"); //Создаем ящик для хранения картинки
$text_color=imageColorAllocate($image,198,198,198) ;//Задаем цвет текста(формат RGB)

echo $form;
ImageTTFText($image, 6, 0, 50, 14, $text_color, "include/hooge.ttf", "Прибежал {$username} и сказал:");//Рисуем текстик :)
ImageTTFText($image, 6, 0, 50, 32, $text_color, "include/hooge.ttf", $text);//2 строка
ImagePng($image);//Собственно выводим саму картинку в браузер
ImagePng($image,"images/".$file_dir=rand('a','z').md5(rand(1,'z')).md5(time ()+rand(1,10)).".png");
ImageDestroy($image);//Освобождаем место :)
endif;
?>
Как сделать так,что бы работал :confused:
Я знаю,что трабла в хеадерах,а что делать - хз.

KrafT
06.01.2010, 19:50
Как зделать чтоб он сразу из всех найденых выдовал только последний ид ????
preg_match_all('#/v2/video/watch/([0-9]*)/#', $ff, $idz, PREG_SET_ORDER);
$cc = count($idz[1]);
foreach ($idz as $ids) {
if (!in_array($ids[1], $f_ids))
$f_ids[] = $ids[1];

b3
06.01.2010, 20:00
Как зделать чтоб он сразу из всех найденых выдовал только последний ид ????
preg_match_all('#/v2/video/watch/([0-9]*)/#', $ff, $idz, PREG_SET_ORDER);
$cc = count($idz[1]);
foreach ($idz as $ids) {
if (!in_array($ids[1], $f_ids))
$f_ids[] = $ids[1];

На скорую руку, может конечно есть логичнее решение, незадумывался.

<?php
$var = '
/v2/video/watch/1/
/v2/video/watch/2/
/v2/video/watch/3/
/v2/video/watch/4/';

if(preg_match_all('#/v2/video/watch/(.*)/#',$var,$m)) {
$count = count($m[0]);
echo $m[0][$count-1];
}
?>

KrafT
06.01.2010, 20:11
На скорую руку, может конечно есть логичнее решение, незадумывался.

<?php
$var = '
/v2/video/watch/1/
/v2/video/watch/2/
/v2/video/watch/3/
/v2/video/watch/4/';

if(preg_match_all('#/v2/video/watch/(.*)/#',$var,$m)) {
$count = count($m[0]);
echo $m[0][$count-1];
}
?>

Непокатит =[[ Помогите народ плс =]

Byrger
06.01.2010, 21:06
кроме return както можно вывести переменную из функции?
Что-то типа глобальной переменной?

m0Hze
06.01.2010, 21:15
кроме return както можно вывести переменную из функции?
Что-то типа глобальной переменной?
Константа, передать адрес пременной в ф-цию,глобальные переменные...наверное еще чтото есть,я просто не помню)

KrafT
06.01.2010, 21:23
Как зделать чтоб он сразу из всех найденых ид выдовал только последний найдэный ид ????
preg_match_all('#name=(.*)></a><font class#', $wp, $kol, PREG_SET_ORDER);
$cc = count($kol[1]);
foreach ($idz as $ids) {
if (!in_array($ids[1], $f_ids))
$f_ids[] = $ids[1];
echo "Poslednij name $id\n";

olishort
06.01.2010, 21:29
Как зделать чтоб он сразу из всех найденых ид выдовал только последний найдэный ид ????
preg_match_all('#name=(.*)></a><font class#', $wp, $kol, PREG_SET_ORDER);
$cc = count($kol[1]);
foreach ($idz as $ids) {
if (!in_array($ids[1], $f_ids))
$f_ids[] = $ids[1];
echo "Poslednij name $id\n";

про array_reverse почитай

m0Hze
06.01.2010, 21:40
Константа, передать адрес пременной в ф-цию,глобальные переменные...наверное еще чтото есть,я просто не помню)

<?php

function pew(&$echo){
$echo = 'Hello';
}
pew($echo);
echo $echo;
?>
<?php
$name = 'hello';

function pew2($name){
global ${$name};;
$ret = &${$name};
return($ret = 'World');
}
pew2($name);
echo $hello;
?>

b3
06.01.2010, 21:44
про array_reverse почитай
Лишняя нагрузка, может там 1000 ссылок, имхо лучше как я предложил подсчитать count() -1

Tisar
06.01.2010, 22:30
Отпарсил одну страницу с помощью DOM и хочу полученные данные занести в БД MySQL.
Моя БД:

CREATE TABLE `jyf` (
`gf` varchar(5) collate cp1251_general_cs NOT NULL,
PRIMARY KEY (`gf`),
FULLTEXT KEY `gf` (`gf`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs;
Скрипт записи в БД:

mysql_connect('127.0.0.1', 'root', '') or die ('Не могу подключится к серверу');
mysql_select_db('hgf');
$lvl=iconv('utf-8', 'windows-1251', $lvl);
mysql_query("INSERT INTO jyf VALUES ('$lvl')") or die ("Запись в БД не удалась<br>");
После парсинга текст в кодировке UTF-8, преобразую его в windows-1251 и в таком виде записываю в БД.

Что оказывается в БД:
INSERT INTO `jyf` VALUES ('\r\n ');
Если вывести на страницу после перекодировки на страницу, то всё отображается нормально. Должна была записана цифра 6.
Что я делаю не так?

Dark_cracker
07.01.2010, 03:21
Интересует вопрос как через curl , пройти basic авторизацию , гугл молчит ... вот например в http есть такая фича CURLOPT_POSTFIELDS , а вот для бейсика не могу найти :(

Gifts
07.01.2010, 03:26
Dark_cracker CURLOPT_HTTPAUTH и CURLOPT_USERPWD

Или "напрямую", через CURLOPT_HTTPHEADER

Markus_13
07.01.2010, 11:52
решил сделать чтобы сайт собирался "покусочкам" - создал неск-ко файлов с теми данными которые на многих страницах совпадают, к примеру в одном файле находятся след. данные: заголовок файла до <head>, постоянные теги хеда (оформление и т.д.), последние строки файла (</html> и комент что типа сайт написан мной =))
в страничках на пхп написан код который загружает этот файл и выводит нужные данные (они разбиты построчно)...
ВОПРОС: не будет ли нагрузка на сервер слишком большой? возможно лучше использовать include() или что-то еще?
Или вообще отказаться от этого? (просто так значительно быстрей и удобней редактировать сайт)
З.Ы. сори за глупый вопрос, но гугл мне не помогает))

m0Hze
07.01.2010, 12:36
решил сделать чтобы сайт собирался "покусочкам" - создал неск-ко файлов с теми данными которые на многих страницах совпадают, к примеру в одном файле находятся след. данные: заголовок файла до <head>, постоянные теги хеда (оформление и т.д.), последние строки файла (</html> и комент что типа сайт написан мной =))
в страничках на пхп написан код который загружает этот файл и выводит нужные данные (они разбиты построчно)...
ВОПРОС: не будет ли нагрузка на сервер слишком большой? возможно лучше использовать include() или что-то еще?
Или вообще отказаться от этого? (просто так значительно быстрей и удобней редактировать сайт)
З.Ы. сори за глупый вопрос, но гугл мне не помогает))
Молодец,ты изобрел шаблонизатор,очень примитывный,но все же шаблнизатор\цию.Теперь загугли на эту тему инторнет.

Markus_13
07.01.2010, 14:40
m0Hze, спс, оч. много ценной информации!
если кто не понял - перефразирую:
какой способ этой самой "шаблонизации" наиболее эффективен? и стоит ли его использовать там где можно обойтись статическим контентом?

Maxxxtri23
07.01.2010, 19:47
Имеется php скрипт для работы с сокетами
<?php
error_reporting(E_ALL);

/* Позволить сценарию зависнуть вокруг ожидания подключений */
set_time_limit(0);

/* Включить неявный вывод, так что мы видим то, что мы получаем
* когда это приходит . */
ob_implicit_flush();

$address = '127.0.0.1';
$port = 10000;

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
echo "socket_create() failed: reason: " . socket_strerror($sock) . "\n";
}

if (($ret = socket_bind($sock, $address, $port)) < 0) {
echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n";
}

if (($ret = socket_listen($sock, 2)) < 0) {
echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n";
}

do {
if (($msgsock = socket_accept($sock)) < 0) {
echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";
break;
}
/* Send instructions. */
$msg = "\nWelcome to the PHP Test Server. \n" .
"To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
socket_write($msgsock, $msg, strlen($msg));

do {
if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
echo "socket_read() failed: reason: " . socket_strerror($ret) . "\n";
break 2;
}
if (!$buf = trim($buf)) {
continue;
}
if ($buf == 'quit') {
break;
}
if ($buf == 'shutdown') {
socket_close($msgsock);
break 2;
}
$talkback = "PHP: You said '$buf'.\n";
socket_write($msgsock, $talkback, strlen($talkback));
echo "$buf\n";
} while (true);
socket_close($msgsock);
} while (true);

socket_close($sock);
?>

Если подключаться к нему неткатом или самописным клиентом на делфи то все сообщения через сокет нормально проходят и если отправить quit то соединение благополучно закрывается и php скрипт продолжает работать. А если не отсылать quit, а просто закрыть прогу, то скрипт выдает
Warning: socket_read(): unable to read from socket [0]: ╙фрыхээ√щ їюёЄ яЁшэєфшЄх
ы№эю ЁрчюЁтры ёє∙хёЄтє■∙хх яюфъы■ўхэшх.
in D:\xampp\htdocs\index.php on line 37
socket_read() failed: reason: ═хтхЁэр* ЇєэъЎш*.

И соответственно перестает работать. Что нужно исправить, чтобы при закрытии клиента без предварительной отправки quit скрипт продолжал работать?

P.S. как исправить кодировку тоже немогу понять.
Запускаю скрипт командой D:\xampp\php\php.exe D:\xampp\htdocs\index.php

Gifts
07.01.2010, 20:34
if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
echo "socket_read() failed: reason: " . socket_strerror($ret) . "\n";
break 2;
}
Заменить на
if (false === ($buf = @socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
echo "Client diconnected";
break;
}

v1149906
07.01.2010, 21:05
выполняю вход в админку захожу вот только чтоб мне куда нить зайти в этой админке мне надо повторно выполнять вход а точнее я нажимаю на любую станичку из меню и опять мне надо выпплнить вход в одминку и я поподаю на ту страничку на которую я нажал это еще терпимо но когда на своем же сайте зарегистрироваться неможешь вот это уже бесит пож помогите решить эту проблему че за хрень с сайтом :confused:

wildshaman
07.01.2010, 21:06
Включи cookies в браузере

v1149906
07.01.2010, 21:06
включенно =))

v1149906
07.01.2010, 21:08
Включи cookies в браузере

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

ZERO-Y
07.01.2010, 23:09
Есть файл 1.txt с правами 666, надо скрипт который бы очищал содержимое этого файла.
site.com/1.txt - файл с текстом
site.com/clear.php - скрипт который бы очищал 1.txt
Буду благодарен за помощь, с меня +.

m0Hze
07.01.2010, 23:11
$fh = fopen('1.txt',"w");
fclose($fh);

WNZRS
07.01.2010, 23:26
fclose(fopen('1.txt','w'));

Maxxxtri23
07.01.2010, 23:29
Как в этом скрипте реализовать работу с 2 сокетами?
<?php
error_reporting(E_ALL);

/* Позволить сценарию зависнуть вокруг ожидания подключений */
set_time_limit(0);

/* Включить неявный вывод, так что мы видим то, что мы получаем
* когда это приходит . */
ob_implicit_flush();

$address = '127.0.0.1';
$port = 10000;

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
echo "socket_create() failed: reason: " . socket_strerror($sock) . "\n";
}

if (($ret = socket_bind($sock, $address, $port)) < 0) {
echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n";
}

if (($ret = socket_listen($sock, 2)) < 0) {
echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n";
}

do {
if (($msgsock = socket_accept($sock)) < 0) {
echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";
break;
}
/* Send instructions. */
$msg = "\nWelcome to the PHP Test Server. \n" .
"To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
socket_write($msgsock, $msg, strlen($msg));

do {
if (false === ($buf = @socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
echo "Client diconnected.\n";
break;
}
if (!$buf = trim($buf)) {
continue;
}
if ($buf == 'quit') {
break;
}
if ($buf == 'shutdown') {
socket_close($msgsock);
break 2;
}
$talkback = "PHP: You said '$buf'.\n";
socket_write($msgsock, $talkback, strlen($talkback));
echo "$buf\n";
} while (true);
socket_close($msgsock);
} while (true);

socket_close($sock);
?>

Попробовал нубским способом просто скопировать функции вот так:

<?php
error_reporting(E_ALL);

/* Позволить сценарию зависнуть вокруг ожидания подключений */
set_time_limit(0);

/* Включить неявный вывод, так что мы видим то, что мы получаем
* когда это приходит . */
ob_implicit_flush();

$address = '127.0.0.1';
$port = 10000;

$addressa = '127.0.0.1';
$porta = 10001;

//-----------------------------------------------------------------------------Создаем сокет
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
echo "socket_create() failed: reason: " . socket_strerror($sock) . "\n";
}

if (($socka = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
echo "socket_create() failed: reason: " . socket_strerror($socka) . "\n";
}

//-----------------------------------------------------------------------------Биндим сокет
if (($ret = socket_bind($sock, $address, $port)) < 0) {
echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n";
}

if (($reta = socket_bind($socka, $addressa, $porta)) < 0) {
echo "socket_bind() failed: reason: " . socket_strerror($reta) . "\n";
}

//-----------------------------------------------------------------------------Слушаем сокет
if (($ret = socket_listen($sock, 2)) < 0) {
echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n";
}

if (($reta = socket_listen($socka, 2)) < 0) {
echo "socket_listen() failed: reason: " . socket_strerror($reta) . "\n";
}



do {
if (($msgsock = socket_accept($sock)) < 0) {
echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";
break;
}
/* Send instructions. */
$msg = "\nWelcome to the PHP Test Server. \n" .
"To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
socket_write($msgsock, $msg, strlen($msg));


if (($msgsocka = socket_accept($socka)) < 0) {
echo "socket_accept() failed: reason: " . socket_strerror($msgsocka) . "\n";
break;
}
/* Send instructions. */
$msga = "\nWelcome to the PHP Test Server. \n" .
"To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
socket_write($msgsocka, $msga, strlen($msga));

do {
if (false === ($buf = @socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
echo "Client diconnected.\n";
break;
}
if (false === ($bufa = @socket_read($msgsocka, 2048, PHP_NORMAL_READ))) {
echo "Client diconnected.\n";
break;
}
if (!$buf = trim($buf)) {
continue;
}
if ($buf == 'quit') {
break;
}
if ($buf == 'shutdown') {
socket_close($msgsock);
break 2;
}
$talkback = "PHP: You said '$buf'.\n";
$talkbacka = "PHP: You said '$bufa'.\n";
socket_write($msgsock, $talkback, strlen($talkback));
socket_write($msgsocka, $talkbacka, strlen($talkbacka));
echo "$buf\n";
echo "$bufa\n";
} while (true);
socket_close($msgsock);
socket_close($msgsocka);
} while (true);

socket_close($sock);
socket_close($socka);
?>

Ну и естесственно работает или 1 сокет или 2, хотя коннекты принимает от 2х сразу

ZERO-Y
07.01.2010, 23:32
Спасибо, скрипт работает! m0Hze, WNZRS + :)

KrafT
07.01.2010, 23:50
Было задумано с помошю прегмача выташить одну строчку прегмач был зделан 100% правельно но он нечего ненахадил потом я убрал условия прегмачя тоесть чтоб выводил в echo всё что есть на страницы а он мне выдовал всего лиш HTTP/1.1 200 OK в место длиного кода страницы! Помогите плззз.... :confused:
Это код с прегмачям
$get = curl_init("http://web.web");
curl_setopt($get, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($get, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)');
$headers = array
(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
'Accept-Encoding: gzip,deflate',
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'

);
curl_setopt($get, CURLOPT_REFERER, 'http://web.web');
curl_setopt($get, CURLOPT_HEADER, 1);
curl_setopt($get , CURLOPT_PROXY, $proxy);
curl_setopt($get, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($get, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($get, CURLOPT_COOKIEJAR, 'cookie.txt');
$wp = curl_exec($get);
curl_close($get);


preg_match('#(.*)#', $wp, $idzz222);
$idzzx22 = $idzz222[1];
echo "t idddd $idzzx22\n";
echo "Found on page [$id]\n";
А вот что выдоёт http headers...
http://web.ru/video?id=khkY2kkAkkkk
GET /video?id=khkY2kkAkkkk HTTP/1.1
Host: web.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://web.ru/new/video
Cookie: webru=5600dfc1315ec9589b00b90768e949d3; __utma=161392741.1852195239.1258833076.1262886754. 1262889524.29; __utmz=161392741.1258833076.1.1.utmcsr=(direct)|ut mccn=(direct)|utmcmd=(none); webruuic=56ca04287e3aaa506c1ea1668b4edcf12b1b3cca2 9837b2e97dc28d061; __utmc=161392741; __utmb=161392741.1.10.1262889524

HTTP/1.x 200 OK
X-Powered-By: PHP/5.2.8
Set-Cookie: webruuic=56ca04287e3aaa506c1ea1668b4edcf12b1b3cca2 9837b2e97dc28d061; expires=Tue, 09-Aug-2011 11:32:08 GMT; path=/; domain=.web.ru
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Date: Thu, 07 Jan 2010 18:38:48 GMT
Server: lighttpd/1.4.23

b3
08.01.2010, 00:11
preg_match('#(.*)#', $wp, $idzz222);
$idzzx22 = $idzz222[1];
echo "t idddd $idzzx22\n";

У меня мозг рушится когда я такое вижу, да еще и

$headers = array
(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
'Accept-Encoding: gzip,deflate',
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7',
'Accept-Encoding: gzip,deflate',
);

Kusto
08.01.2010, 00:14
Было задумано с помошю прегмача выташить одну строчку прегмач был зделан 100% правельно но он нечего ненахадил потом я убрал условия прегмачя тоесть чтоб выводил в echo всё что есть на страницы а он мне выдовал всего лиш HTTP/1.1 200 OK в место длиного кода страницы! Помогите плззз.... :confused:

я здесь один ничего непонял????, в чем проблемма? в том что cURL составлен неверно ? кстати а что можно ждать от курла в котором curl_init("http://web.web"); ??? или регулярка- в которой я так и не понял что хотели выдернуть- насколько я понял (.*) -это может быть все что угодно , ты хоть напиши что ты пытаешся от скрипта добиться- судя по скрипту ты с сайта http://web.web пытаешся выдернуть первоепопавшееся слово (кстати для чего тут курл был заюзан- для меня загадка)


P.S. Если тебе надо подключиться к внешнему сайту и дернуть из него что то то для подключения используй функцию file_get_contents ну а регулярку.......скажи что надо те дернуть оттуда и тебе помогут

как то так это делаеться

<?php

$b =file_get_contents('тут адрес сайта из которого тебе надо дернуть строичку или что там у тя');

preg_match_all(здесь правильную регулярку $bt, $a);

$arr = $a[0];

foreach($arr as $value)
{
echo "$value <br />";
}

?>



все- весь код

KrafT
08.01.2010, 01:38
я здесь один ничего непонял????, в чем проблемма? в том что cURL составлен неверно ? кстати а что можно ждать от курла в котором curl_init("http://web.web"); ??? или регулярка- в которой я так и не понял что хотели выдернуть- насколько я понял (.*) -это может быть все что угодно , ты хоть напиши что ты пытаешся от скрипта добиться- судя по скрипту ты с сайта http://web.web пытаешся выдернуть первоепопавшееся слово (кстати для чего тут курл был заюзан- для меня загадка)


P.S. Если тебе надо подключиться к внешнему сайту и дернуть из него что то то для подключения используй функцию file_get_contents ну а регулярку.......скажи что надо те дернуть оттуда и тебе помогут

как то так это делаеться

<?php

$b =file_get_contents('тут адрес сайта из которого тебе надо дернуть строичку или что там у тя');

preg_match_all(здесь правильную регулярку $bt, $a);

$arr = $a[0];

foreach($arr as $value)
{
echo "$value <br />";
}

?>



все- весь код
Дану брось это бред с file get kontents с курлом проше ... а курл составлен правелно поверь... кстати а что можно ждать от курла в котором curl_init("http://web.web"); ??? а можэт я просто нехачю чтоб вы знали веб для которого эт всё ... А что дёрнут это тут необязателно поверь ну есле так надо держы
preg_match('#t_id=([0-9]*)#', $wp, $idzz22s);
$idzzx2s = $idzz22s[1];
echo "t_id = $idzzx2s\n";

И вобше ты всё читал чё я написал ? :D жош
А проблема в том что он находен HTTP/1.1 200 OK в web.web в место кода страницы... тк можэт она переносится кудата или чё я дажэ незнаю но когда заходеш на web.web чэрез мозилу сылка неменяется такойжэ и остоётся Помогите плз ктонибудь

Kusto
08.01.2010, 02:05
если тебе нужен Курл для подключения к вебстранице и ты говориш file_get_contents-бред, то я умываю руки.....

P.S Или я правдо что то непонял??????

e[X]theta[M]ine
08.01.2010, 02:10
Kusto, солидарен с твоим мнением.
KraFT, зачем тебе нужен именно Curl, если можно сделать проще - file_get_conents?

KrafT
08.01.2010, 02:18
$get = curl_init("http://web.web"); ну так это и есть можно сказать file get kontents :) наверное чтото непонел :mad: ну в предведушем мсг я всё подробно разсказал перечитай думаю поймёш

KrafT
08.01.2010, 02:21
theta[M]ine']Kusto, солидарен с твоим мнением.
KraFT, зачем тебе нужен именно Curl, если можно сделать проще - file_get_conents?
то что у меня весь скрипт на курле... да и в принцыпе без разницы так как проблема не в том... Так как в мозиле делаеш ctrl+u там есть код а когда с $get = curl_init("http://web.web"); то там пустой код в нём только это HTTP/1.1 200 OK с file_get_conents будет тожэ самое...

Kusto
08.01.2010, 02:28
причем здесь весь скрипт))), ладно тогда почитай значение этой функции curl_close($get); т е Завершает сеанс CURL и освобождает ресурсы. Дескриптор get ( в твоем случае) также уничтожается

KrafT
08.01.2010, 02:31
причем здесь весь сайт))), ладно тогда почитай значение этой функции curl_close($get); т е Завершает сеанс CURL и освобождает ресурсы. Дескриптор get ( в твоем случае) также уничтожается
хз хз тк я невпервые делаю прегмач с курла и нечэго неуничтожается =[

Kusto
08.01.2010, 02:51
лан хочеш так- делай так только например функция curl_exec($get); выведет страницу в браузер а ты используеш CURLOPT_RETURNTRANSFER с функцией curl_setopt() которая возвращает результат обработки (в твоем случае это 200 ОК)

KrafT
08.01.2010, 02:57
лан хочеш так- делай так только например функция curl_exec($get); выведет страницу в браузер а ты используеш CURLOPT_RETURNTRANSFER с функцией curl_setopt() которая возвращает результат обработки (в твоем случае это 200 ОК)
Воо спс болшое :) + ;)

VladZombie
08.01.2010, 02:58
Как сделать так чтобы при заходе на страницу записывалось число заходов в текстовый документ?

p.s ссори за такой тупой вопрос просто я php вообще не знаю

Kusto
08.01.2010, 03:21
Как сделать так чтобы при заходе на страницу записывалось число заходов в текстовый документ?

p.s ссори за такой тупой вопрос просто я php вообще не знаю

?php

$ip = $_SERVER["REMOTE_ADDR"]; // IP
$Data = date("d-m-y H:i:s", time()); // Дата и время
$Browser = getenv("HTTP_USER_AGENT");
$Port = getenv("REMOTE_PORT");
$Connect = $_SERVER['HTTP_CONNECTION'];
$Host = gethostbyaddr(getenv("REMOTE_ADDR"));
$text = "[$Data] Browser:[$Browser] Port:[$Port] Connect:[$Connect] Host:[$Host] IP:$ip ";
$filelog = fopen("base.php","a+"); //открываем файл базы
fwrite($filelog,"\n $text \n"); //записываем всё
fclose($filelog); //закрываем


?>



как то так

VladZombie
08.01.2010, 03:25
?php

$ip = $_SERVER["REMOTE_ADDR"]; // IP
$Data = date("d-m-y H:i:s", time()); // Дата и время
$Browser = getenv("HTTP_USER_AGENT");
$Port = getenv("REMOTE_PORT");
$Connect = $_SERVER['HTTP_CONNECTION'];
$Host = gethostbyaddr(getenv("REMOTE_ADDR"));
$text = "[$Data] Browser:[$Browser] Port:[$Port] Connect:[$Connect] Host:[$Host] IP:$ip ";
$filelog = fopen("base.php","a+"); //открываем файл базы
fwrite($filelog,"\n $text \n"); //записываем всё
fclose($filelog); //закрываем


?>
как то так

Это то пробовал. Ну мне надо чтобы именно число заходов на страницу записывалось. чтобы когда открою страницу и запишится в text.txt цифра "1" открою ещё раз эту же страницу уже запишется "2" и т.д

Kusto
08.01.2010, 03:45
?php

$file = file('text.txt');
$a=count($file);

$filelog = fopen("text.txt","a+"); //открываем файл базы
$a=$a+;
fwrite($filelog," $a <br />"); //записываем всё

fclose($filelog); //закрываем


?>



тогда так

VladZombie
08.01.2010, 04:05
?php

$file = file('text.txt');
$a=count($file);

$filelog = fopen("text.txt","a+"); //открываем файл базы
$a=$a+;
fwrite($filelog,"\n $a \n"); //записываем всё

fclose($filelog); //закрываем


?>



тогда так

Он записывает у тебя почемуто через одну цифру 2,4,6 и т.д а надо чтобы просто менялось значение

Kusto
08.01.2010, 04:10
подправил (пробелы лишние в строке были) счас попробуй (вот эту строчку замени fwrite($filelog," $a <br />"); (я у себя там подкорректировал)

если надо чтоб несоздавались записи в файле а просто например была цифра 5- при следующем заходе поменялась на цифру 6 (И Т Д чтоб нераздувать файл) завтра если время будет напишу там надо просто регулярку составить и перезаписывать цифру в тот-же файл) счас просто голова неварит уже

VladZombie
08.01.2010, 04:23
подправил (пробелы лишние в строке были) счас попробуй (вот эту строчку замени fwrite($filelog," $a <br />"); (я у себя там подкорректировал)


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

<?php if ($text==1) { $file=fopen("text.txt","a+"); flock($file,LOCK_EX); $count=fread($file,100); $count++; ftruncate($file,0); fwrite($file,$count); flock($file,LOCK_UN); fclose($file); } ?>

он записывает только через переменную а надо чтобы когда открываешь страницу и сразу записалось

Fepsis
08.01.2010, 04:46
Пытаюсь авторизоваться на сайте скриптом.. Получаю в ответ требование включить куки в браузере... Пробовал курлом, пробовал сокетами - всё равно...

Вопрос: как сервак проверяет включены ли у меня куки и самое главное как убедить его, что они у меня включены..?!

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

Kusto
08.01.2010, 04:49
может этот код исправишь?

<?php if ($text==1) { $file=fopen("text.txt","a+"); flock($file,LOCK_EX); $count=fread($file,100); $count++; ftruncate($file,0); fwrite($file,$count); flock($file,LOCK_UN); fclose($file); } ?>

он записывает только через переменную а надо чтобы когда открываешь страницу и сразу записалось
держи- вроде то что ты хочеш (на денвере работает)

<?php

$file = file_get_contents('text.txt');
preg_match('(.*)', $file, $out) ;
$a=$out[0];

$filelog = fopen("text.txt","w+"); //открываем файл базы
$a=$a+1;
fwrite($filelog," $a "); //записываем всё

fclose($filelog); //закрываем


?>

VladZombie
08.01.2010, 04:54
держи- вроде то что ты хочеш (на денвере работает)

<?php

$file = file_get_contents('text.txt');
preg_match('(.*)', $file, $out) ;
$a=$out[0];

$filelog = fopen("text.txt","w+"); //открываем файл базы
$a=$a+1;
fwrite($filelog," $a "); //записываем всё

fclose($filelog); //закрываем


?>


спс то что надо )))

Maxxxtri23
08.01.2010, 13:12
Подскажет кто с моей проблемой?
http://forum.antichat.ru/showpost.php?p=1810658&postcount=14178

Komyak
08.01.2010, 14:20
Подскажите где моя ошибка. Понадобился список пользователей, на локалке нормально разбирает, а с сайта тянуть страницы не хочет:

$ot='1';
$do='2';
$filelog=fopen('logname-seo.txt','a+');
function curl_ini(){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_VERBOSE,1);
return $ch;}
function get_by_curl($url,$refer){
$useragent='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1) Gecko/20061010 Firefox/2.0;MEGAUPLOAD 1.0';
$ch=curl_ini();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_REFERER, $refer);
$result=curl_exec ($ch);
return $result;}

for($q=$ot;$q<=$do;$q++)
{
$pagemail=get_by_curl("http://forum.searchengines.ru/memberlist.php?page=$q",'http://forum.searchengines.ru/');
preg_match_all('|<a href="member.php(.?)u=([0-9]+)">(.*?)<\/a>|is',$pagemail,$resku);
for($y=0;$y<=count($resku[3]);$y++)
{
echo $resku[3][$y]."<br>";
fwrite($filelog,$resku[3][$y]."\n");
}
}

fclose($filelog);

Gifts
08.01.2010, 14:43
Maxxxtri23 Почему бы не использовать прекрасный пример из мануала, поддерживающий произвольное количество клиентов и обрабатывающий отключение/подключение? http://ru.php.net/manual/en/function.socket-select.php#56241

admink1
08.01.2010, 19:05
приветствую всех :)
не могу понять как написать цикл, а именно чтоб выдергивал из файла каждый раз 3 строчки и пусть будет выводил на экран.
допустим при первой работе цикла он выдернул 1-3 строчки, втрой раз 3-6 строчки и так далее.
благодарю :)

Kusto
08.01.2010, 19:14
приветствую всех :)
не могу понять как написать цикл, а именно чтоб выдергивал из файла каждый раз 3 строчки и пусть будет выводил на экран.
допустим при первой работе цикла он выдернул 1-3 строчки, втрой раз 3-6 строчки и так далее.
благодарю :)
подключись к файлу с помощью file() у тебя образуеться массив с ключами, в цикле укажи вывод переменной на экран (ну или трех) и каждый раз ключи этих переменных увеличивай на 1

admink1
08.01.2010, 19:32
подключись к файлу с помощью file у тебя образуеться массив с ключами, в цикле укажи вывод переменной на экран (ну или трех) и каждый раз ключи этих переменных увеличивай на 1

можно пожалуйста немного кода набрасать, трудновато пока

вот то что сделал:

$k = "name.txt";
$data = file_get_contents($k);
$mas = explode("\r\n",$data);
for ($i=0; $i<count($mas); $i++)
{
print " $mas[$i]";
}


а вот как +3 сделать не знаю

Kusto
08.01.2010, 19:35
можно пожалуйста немного кода набрасать, трудновато пока

вот то что сделал:

$k = "name.txt";
$data = file_get_contents($k);
$mas = explode("\r\n",$data);
for ($i=0; $i<count($mas); $i++)
{
print " $mas[$i]";
}


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

svesve
08.01.2010, 20:33
Есть у когонить пример авторизации на Yandex.ru ?

Задача такая, надо авторизоваться на yandex.ru и запостить запись в дневник.


<?php
$login='user';
$pass='pass';

$ch = curl_init('https://passport.yandex.ru/passport?mode=auth');
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'C:/wamp/www/default/ya/cookie.txt');
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'C:/wamp/www/default/ya/cookie.txt');
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'login='.$login.'&passwd='.$pass.'&twoweeks=yes&retpath=http://my.ya.ru/&timestamp=1262909700829&kspace=beta.ya.ru');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec ($ch);
curl_close ($ch);
echo $result;
?>


после авторизации он мне говорит что куки у меня выключены, хотя файлик с куками не пустой.

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

<?php
$ch = curl_init('http://user.ya.ru/ajax/post_do_save.xml');
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_COOKIE, 'тут подставленные куки');
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'access_type=public&replies=1&title=1&tags=&tag=&=%20%2B%20&=%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82% D1%8C&=%D0%9E%D1%82%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C&=&submit_btn=%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0 %B8%D1%82%D1%8C&type=text&feed_id=81083193&body=1');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, false);
$result = curl_exec ($ch);
curl_close ($ch);
echo $result;
?>

Кто что может подсказать ?
как можно аторизоваться и запостить одновременно?

Kusto
08.01.2010, 20:40
То admink1 Вернулся я, держи свой скрипт

<?php
$k = file('name.txt');// получаем массив
$a=array_chunk($k,3); // делим массив на подмассивы по 3 элемента
foreach ($a as $c => $d){//выводим полученные тройки
echo " Выводим $c -ый раз : <ul>";
foreach ($d as $f) echo "<li> $f";
echo "</ul>";
}
?>


результат примерно такой

Выводим 0 -ый раз :
25
456
789
Выводим 1 -ый раз :
425
456
7851
Выводим 2 -ый раз :
54698
52145
25469

там подправиш если что нетак

Kusto
08.01.2010, 20:54
Есть у когонить пример авторизации на Yandex.ru ?


посмотри мой курл (счас непроверял- раньше работал)


function post($url,$post,$refer)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
return $result;

}

admink1
08.01.2010, 21:31
То admink1 Вернулся я, держи свой cкрипт


результат вот такой:

Выводим 0 -ый раз :
1
2
3
Выводим 1 -ый раз :
4
5
7
Выводим 2 -ый раз :
8
9
10


блин, как я понимаю он выводит подмассивами, а некаждую строку отдельно.
ps нужно чтоб вывел вначале 1, потом 2, 3. при следующем повторе цикла вначале 4, потом 5, 6
спасибо, и сорри за настойчивость :)

b3
08.01.2010, 21:41
Есть у когонить пример авторизации на Yandex.ru ?
Когда-то писал, сейчас незнаю работает или нет, проверь.

function login($login,$pass)
{

$ch = curl_init('https://passport.yandex.ru/passport?mode=auth');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
curl_setopt($ch, CURLOPT_REFERER, 'https://passport.yandex.ru/passport?mode=auth');
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'cook.txt');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login=$login&passwd=$pass");
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$res = curl_exec($ch);
if(preg_match('#https:\/\/passport\.yandex.ru\/passport\?mode=logout#',$res))
return true;
}

Kusto
08.01.2010, 21:44
блин, как я понимаю он выводит подмассивами, а некаждую строку отдельно.
ps нужно чтоб вывел вначале 1, потом 2, 3. при следующем повторе цикла вначале 4, потом 5, 6
спасибо, и сорри за настойчивость :)
если честно- я ничего непонял область применения что хочеш, опиши подробнее- вернусь- попробую помоч если пойму что требуеться
и прекращайте пользоваться count намного проще организовываеться цикл до тех пор пока в файле невстретиться конец файла ну типа такого while(!feof($k))

admink1
08.01.2010, 22:08
если честно- я ничего непонял область применения что хочеш, опиши подробнее- вернусь- попробую помоч если пойму что требуеться
и прекращайте пользоваться count намного проще организовываеться цикл до тех пор пока в файле невстретиться конец файла ну типа такого while(!feof($k))


есть текстовик со следующим содержимым:
1
2
3
4
5
6
..etc

мне нужно чтоб заходил в текстовик выдергивал первую строчку(то есть цифру 1) и заходил по ссылке, допустим ttp://vkontakte.ru/id1 , потом брал вторую строчку(цифру 2), заходил на ttp://vkontakte.ru/id2, потом заходил ttp://vkontakte.ru/id3 и здесь цикл заканичвал свою работу и начинает работать другой цикл, ну после того как вновь вернемся к нашему циклу он выполнил ту же операцию, но уже начиная с четвертой строчкой(цифра 4), то есть совершил по очереди переходы:
ttp://vkontakte.ru/id4
ttp://vkontakte.ru/id5
ttp://vkontakte.ru/id6
и закончил свою работу.

Maxxxtri23
08.01.2010, 22:16
<?php

$port = 10001;

// create a streaming socket, of type TCP/IP
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// set the option to reuse the port
socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1);

// "bind" the socket to the address to "localhost", on port $port
// so this means that all connections on this port are now our resposibility to send/recv data, disconnect, etc..
socket_bind($sock, 0, $port);

// start listen for connections
socket_listen($sock);

// create a list of all the clients that will be connected to us..
// add the listening socket to this list
$clients = array($sock);

while (true) {
// create a copy, so $clients doesn't get modified by socket_select()
$read = $clients;

// get a list of all the clients that have data to be read from
// if there are no clients with data, go to next iteration
if (socket_select($read, $write = NULL, $except = NULL, 0) < 1)
continue;

// check if there is a client trying to connect
if (in_array($sock, $read)) {
// accept the client, and add him to the $clients array
$clients[] = $newsock = socket_accept($sock);

// send the client a welcome message
socket_write($newsock, "Hello, this is welcome message\n".
"There are ".(count($clients) - 1)." client(s) connected to the server\n");

socket_getpeername($newsock, $ip);
echo "New client connected: {$ip}\n";

// remove the listening socket from the clients-with-data array
$key = array_search($sock, $read);
unset($read[$key]);
}

// loop through all the clients that have data to read from
foreach ($read as $read_sock) {
// read until newline or 1024 bytes
// socket_read while show errors when the client is disconnected, so silence the error messages
$data = @socket_read($read_sock, 1024, PHP_NORMAL_READ);

// check if the client is disconnected
if ($data === false) {
// remove client for $clients array
$key = array_search($read_sock, $clients);
unset($clients[$key]);
echo "client disconnected.\n";
// continue to the next client to read from, if any
continue;
}

// trim off the trailing/beginning white spaces
$data = trim($data);

// check if there is any data after trimming off the spaces
if (!empty($data)) {

// send this to all the clients in the $clients array (except the first one, which is a listening socket)
foreach ($clients as $send_sock) {

// if its the listening sock or the client that we got the message from, go to the next one in the list
if ($send_sock == $sock || $send_sock == $read_sock){
//continue;
if ($data == 'shutdown') {
socket_write($send_sock, "Ololo"."\n");
}

}
// write the message to the client -- add a newline character to the end of the message
//socket_write($send_sock, $data."\n");
//echo($data."\n");

} // end of broadcast foreach
echo($data."\n");
// if ($data == 'shutdown') {
// socket_write($send_sock, "Ololo"."\n");
//}
}

} // end of reading foreach
}

// close the listening socket
socket_close($sock);
?>
Почему если я с какого либо клиента отсылаю shutdown, то пишет:
Warning: socket_write(): unable to write to socket [0]: ╟ряЁюё эр юЄяЁртъє шыш я
юыєўхэшх фрээ√ї (when sending on a datagram socket using a sendto call) no addr
ess was supplied.
in D:\xampp\htdocs\test2.php on line 77
Однако сообщение Ololo приходит. Мне надо чтобы я с 1 клиента отсылал например сообщение shutdown, а скрипт мне в ответ слал Ololo, т.е. чтобы Ololo приходило тому клиенту кто отсылает скрипту shutdown и только ему.
P.S. выручайте новичка, с меня +
Если надо, то вот оригинальный скрипт:
<?php

$port = 9050;

// create a streaming socket, of type TCP/IP
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// set the option to reuse the port
socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1);

// "bind" the socket to the address to "localhost", on port $port
// so this means that all connections on this port are now our resposibility to send/recv data, disconnect, etc..
socket_bind($sock, 0, $port);

// start listen for connections
socket_listen($sock);

// create a list of all the clients that will be connected to us..
// add the listening socket to this list
$clients = array($sock);

while (true) {
// create a copy, so $clients doesn't get modified by socket_select()
$read = $clients;

// get a list of all the clients that have data to be read from
// if there are no clients with data, go to next iteration
if (socket_select($read, $write = NULL, $except = NULL, 0) < 1)
continue;

// check if there is a client trying to connect
if (in_array($sock, $read)) {
// accept the client, and add him to the $clients array
$clients[] = $newsock = socket_accept($sock);

// send the client a welcome message
socket_write($newsock, "no noobs, but ill make an exception :)\n".
"There are ".(count($clients) - 1)." client(s) connected to the server\n");

socket_getpeername($newsock, $ip);
echo "New client connected: {$ip}\n";

// remove the listening socket from the clients-with-data array
$key = array_search($sock, $read);
unset($read[$key]);
}

// loop through all the clients that have data to read from
foreach ($read as $read_sock) {
// read until newline or 1024 bytes
// socket_read while show errors when the client is disconnected, so silence the error messages
$data = @socket_read($read_sock, 1024, PHP_NORMAL_READ);

// check if the client is disconnected
if ($data === false) {
// remove client for $clients array
$key = array_search($read_sock, $clients);
unset($clients[$key]);
echo "client disconnected.\n";
// continue to the next client to read from, if any
continue;
}

// trim off the trailing/beginning white spaces
$data = trim($data);

// check if there is any data after trimming off the spaces
if (!empty($data)) {

// send this to all the clients in the $clients array (except the first one, which is a listening socket)
foreach ($clients as $send_sock) {

// if its the listening sock or the client that we got the message from, go to the next one in the list
if ($send_sock == $sock || $send_sock == $read_sock)
continue;

// write the message to the client -- add a newline character to the end of the message
socket_write($send_sock, $data."\n");

} // end of broadcast foreach

}

} // end of reading foreach
}

// close the listening socket
socket_close($sock);
?>

Gifts
08.01.2010, 23:06
Maxxxtri23 Все ж подписано и каждая строчка прокомментирована >.<

Проблема тут: if ($send_sock == $sock || $send_sock == $read_sock) Скрипт просматривает все сокеты из массива и ищет два: сокет, который принимает новых пользователей и собственно отправителя текущего сообщения. Условия следует разделить - сокет для принятия всегда пропускать. А отправителю слать соответствующее сообщение
if ($send_sock = $sock) continue;
if ($send_sock = $read_sock) socket_write($send_sock, "olololo\n");

Kusto Накладные расходы (памяти/процессора) на подсчет количества элементов в массиве - меньше (естественно, если не загонять подсчет в условие окончания цикла), чем использование foreach

admink1 Либо вы несете чушь и сами не понимаете чего хотите, либо не формулируете до конца задачу. Зачем использовать вложенные циклы, если можно последовательно считывать и обращаться к соответствующим страницам? В чем принципиальная важность второго цикла?

Kusto
08.01.2010, 23:48
мне нужно чтоб заходил в текстовик выдергивал первую строчку(то есть цифру 1) и заходил по ссылке, допустим ttp://vkontakte.ru/id1 , потом брал вторую строчку(цифру 2), заходил на ttp://vkontakte.ru/id2, потом заходил ttp://vkontakte.ru/id3 и здесь цикл заканичвал свою работу и начинает работать другой цикл, ну после того как вновь вернемся к нашему циклу он выполнил ту же операцию, но уже начиная с четвертой строчкой(цифра 4), то есть совершил по очереди переходы:
ttp://vkontakte.ru/id4
ttp://vkontakte.ru/id5
ttp://vkontakte.ru/id6
и закончил свою работу. так в чем проблемма? то-же самое практически

<?php
$k = file('name.txt');
$a=array_chunk($k,3);
foreach ($a as $c => $d){
echo " </br>цикл работает $c -ый раз : </br></br>";
foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> ";


?>


вот результат его работы

цикл работает 0 -ый раз :

суперссылкавконтакта и id= 25
суперссылкавконтакта и id=456
суперссылкавконтакта и id=789

цикл работает 1 -ый раз :

суперссылкавконтакта и id=425
суперссылкавконтакта и id=456
суперссылкавконтакта и id=7851

цикл работает 2 -ый раз :

суперссылкавконтакта и id=54698
суперссылкавконтакта и id=52145
суперссылкавконтакта и id=25469

цикл работает 3 -ый раз :

суперссылкавконтакта и id=58742
суперссылкавконтакта и id=87542
суперссылкавконтакта и id=12458

цикл работает 4 -ый раз :

суперссылкавконтакта и id=12458

admink1
09.01.2010, 01:08
admink1 Либо вы несете чушь и сами не понимаете чего хотите, либо не формулируете до конца задачу. Зачем использовать вложенные циклы, если можно последовательно считывать и обращаться к соответствующим страницам? В чем принципиальная важность второго цикла?


полная задача такова:
1. нужно выдернуть акк из файла.
2. залогиниться.
3. выдернуть из другого текстовика три первые ссылки(1,2,3 строчки)
4. по очереди пройтись по этим трем ссылкам и написать текст.
5. поменять акк
6. залогинится
7. и вновь выдернть из текстовика три последующие ссылки(4,5,6 строчки) и написать текст.

//сделал все , кроме 7ого пункта, получается что всегда по всему файлу проходится, а как хотелось бы не получается :(

REBUUS
09.01.2010, 01:13
<object width="425" height="344">
<param name="movie" value="http://www.youtube.com/v/1bOqXOTYeh8&hl=ru_RU&fs=1&rel=0"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/1bOqXOTYeh8&hl=ru_RU&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed>
</object>

а вариант не перегружая страницу видео из ютуб менять при нажатие на ссылку скриптом ява или пхп , какой ни будь функцией, на пример:
<a href="domen/video/" onClick="video(url);"> ссылка</a>


фотки могу так менять , а вот с видео проблемка :mad:

Kusto
09.01.2010, 01:24
полная задача такова:
1. нужно выдернуть акк из файла.
2. залогиниться.
3. выдернуть из другого текстовика три первые ссылки(1,2,3 строчки)
4. по очереди пройтись по этим трем ссылкам и написать текст.
5. поменять акк
6. залогинится
7. и вновь выдернть из текстовика три последующие ссылки(4,5,6 строчки) и написать текст.

//сделал все , кроме 7ого пункта, получается что всегда по всему файлу проходится, а как хотелось бы не получается :(
сразу говорю этот скрипт я не проверял- но в таком виде должно пахать (как я понял у тя два текста в одном логины и пароли в другом айди)

<?php
$k = file('id.txt');
$x= file('name.txt');
$a=array_chunk($k,3);
foreach ($a as $c => $d){
echo " </br> $x[$c] дернули первый акк и залогинились</br></br>";
foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> ";

}
?>


там где строчка echo " </br> $x[$c] дернули первый акк и залогинились</br></br>"; можеш вставлять людые действия (логиниться, и т д)
а в этой строчке
foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> ";
отправляй сообщения и т д)
И дай ответ работает или нет? (и пускай тебя foreach несмущает- внутри него тоже можно производить любые операции как в любом- другом цикле)

Я непойму что тебя смущало в предыдущих вариантах- практически они все были рабочие просто я по мере твоих обьяснений добавлял все новое и новое, лично я как бы сделал
- составил функцию и внутри циклов бы ее вызывал, я вообще невижу никаких проблемм (непойму что тебя смущает в предложенныхвариантах)

admink1
09.01.2010, 01:41
И дай ответ работает или нет?

не я так пробовал уже ;)
если имеется текстовик со следующим содержанием:

1
2
3
4
5
6
..

что он делает,
1) он логинится все норм,
2) потом выдергивает 3 строчку, заходит по ссылки, потом выдергивает 6 строчку, 9, 12 и так далее, до конца файла.
3) до кончца файла доходит, меняет акк, потом с другим акком проходит, тоже самое делает, то есть проходится по 3 строчке, 6, 9, и так пока конец файла не найдет.

а нужно, чтоб первый акк прошелся по первым трем ссылкам, второй акк по 4-6 ссылке, и так далее ;)

Kusto
09.01.2010, 01:45
не я так пробовал уже ;)
если имеется текстовик со следующим содержанием:

1
2
3
4
5
6
..

что он делает,
1) он логинится все норм,
2) потом выдергивает 3 строчку, заходит по ссылки, потом выдергивает 6 строчку, 9, 12 и так далее, до конца файла.
3) до кончца файла доходит, меняет акк, потом с другим акком проходит, тоже самое делает, то есть проходится по 3 строчке, 6, 9, и так пока конец файла не найдет.

а нужно, чтоб первый акк прошелся по первым трем ссылкам, второй акк по 4-6 ссылке, и так далее ;)
как он может использовать один ак если$x[$c] вызывает из списка совершенно другой акк (с которым и проходит по 3 ссылкам)- 3 ссылки прошло- дергает другой акк и т д (или те не такое надо?)

вот именно= первый акк проходит по первым трем- второй по 4,5,6 (см скрипт выше)

admink1
09.01.2010, 02:02
как он может использовать один ак если вызывает из списка совершенно другой акк (с которым и проходит по 3 ссылкам)- 3 ссылки прошло- дергает другой акк и т д (или те не такое надо?)

вот именно= первый акк проходит по первым трем- второй по 4,5,6 (см скрипт выше)

не, я не говорил, что он 1 акк использует. акки норм меняются, по очереди.
а вот переход по ссылкам идет так - 3строчку дергает, 6, 9 :(

Kusto
09.01.2010, 02:21
не, я не говорил, что он 1 акк использует. акки норм меняются, по очереди.
а вот переход по ссылкам идет так - 3строчку дергает, 6, 9 :(
все работает я там просто "{"пропустил

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

<?php
$k = file('id.txt');
$x= file('name.txt');
$a=array_chunk($k,3);
foreach ($a as $c => $d){
echo " </br> $x[$c] дернули первый акк и залогинились</br></br>";
foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> ";

}
?>


а вот результат его работы

Vasya дернули первый акк и залогинились

суперссылкавконтакта и id=1
суперссылкавконтакта и id=2
суперссылкавконтакта и id=3

petya дернули первый акк и залогинились

суперссылкавконтакта и id=4
суперссылкавконтакта и id=5
суперссылкавконтакта и id=6

misha дернули первый акк и залогинились

суперссылкавконтакта и id=7
суперссылкавконтакта и id=8
суперссылкавконтакта и id=9

grisha дернули первый акк и залогинились

суперссылкавконтакта и id=10
суперссылкавконтакта и id=11
суперссылкавконтакта и id=12


как видеш проходиться каждый акк и по всему списку

admink1
09.01.2010, 02:32
как видеш проходиться каждый акк и по всему списку


а вот результат его работы

Vasya дернули первый акк и залогинились

суперссылкавконтакта и id=1
суперссылкавконтакта и id=2
суперссылкавконтакта и id=3

petya дернули первый акк и залогинились

суперссылкавконтакта и id=4
суперссылкавконтакта и id=5
суперссылкавконтакта и id=6

misha дернули первый акк и залогинились

суперссылкавконтакта и id=7
суперссылкавконтакта и id=8
суперссылкавконтакта и id=9

grisha дернули первый акк и залогинились

суперссылкавконтакта и id=10
суперссылкавконтакта и id=11
суперссылкавконтакта и id=12



но почему то он переходит только по 3им ссылкам, а именно:
суперссылкавконтакта и id=3
суперссылкавконтакта и id=6
суперссылкавконтакта и id=9
суперссылкавконтакта и id=12

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

Gifts
09.01.2010, 03:08
admink1 Потому что руки крюки. Русским языком было сказано - заменить echo " суперссылкавконтакта и id=$f </br> "; на свою функцию. Или следует использовать операторные скобки:

foreach ($d as $f)
{ // <<<---- фигурная скобка, сразу после foreach
echo " суперссылкавконтакта и id=$f </br> ";
echo 'еще одна команда';
echo 'еще другая команда';
} // <<<---- закрывается

Вы вообще мануал открывали? Или уже какером себя считаете и вам не надо?

Kusto а вам надо по рукам линейкой себе бить. Вы бы еще через обфускатор переменные пропустили, чтобы человек еще лучше понял, что означают эти однобуквенные переменные

Nightmarе
09.01.2010, 10:55
Какие функции кроме как fsockopen и cURL могут послать сайту POST запрос?

Да, и ещё из конфига phpinfo:
cURL support enabled
cURL Information libcurl/7.18.1 OpenSSL/0.9.7d zlib/1.1.4

Вроде бы cURL включён, но при попытке отправить пакет с данными, выдаёт ошибку 28
Ну вот пример например:

<?php
$ch = curl_init('http://ya.ru');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
$res = curl_exec($ch);
$errno = curl_errno($ch);
$error = curl_error($ch);
curl_close($ch);
if($errno > 0)
echo $errno.':'.$error;
else echo $res;
?>

Ответ сервера:
28:connect() timed out!

oldsys
09.01.2010, 11:11
Не знаю куда обратится ! Но проблема моя состоит в том что после установки Outpost я не могу открывать множество ссылок в программе Опера ! Выдается вот такая Ошибка !

Невозможно подключиться к прокси-серверу. Доступ запрещён

Вы попытались получить доступ к адресу http://forum.antichat.ru/, который сейчас недоступен. Убедитесь, что веб-адрес (URL) введен правильно, и попытайтесь перезагрузить страницу.
Убедитесь, что соединение с Интернет активно, и проверьте, работают ли другие приложения, использующие это соединение.

что делать подскажите ! О_о

suser
09.01.2010, 12:17
Не знаю куда обратится ! Но проблема моя состоит в том что после установки Outpost я не могу открывать множество ссылок в программе Опера ! Выдается вот такая Ошибка !

Невозможно подключиться к прокси-серверу. Доступ запрещён

Вы попытались получить доступ к адресу http://forum.antichat.ru/, который сейчас недоступен. Убедитесь, что веб-адрес (URL) введен правильно, и попытайтесь перезагрузить страницу.
Убедитесь, что соединение с Интернет активно, и проверьте, работают ли другие приложения, использующие это соединение.

что делать подскажите ! О_о

А в опере прокси нету нерабочего?

Komyak
09.01.2010, 14:58
Подскажите, как можно 4-5 изображений соединить в одно?
Есть капча, которая состоит из 5 отдельных картинок. Вид урла

&p=1
&p=2
&p=3
&p=4
&p=5

Отсылать на распознование по одной картинке нет смысла, а как ещё реализовать не представляю.

Kusto
09.01.2010, 15:35
Какие функции кроме как fsockopen и cURL могут послать сайту POST запрос?

Да, и ещё из конфига phpinfo:
cURL support enabled
cURL Information libcurl/7.18.1 OpenSSL/0.9.7d zlib/1.1.4

Вроде бы cURL включён, но при попытке отправить пакет с данными, выдаёт ошибку 28
Ну вот пример например:

<?php
$ch = curl_init('http://ya.ru');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
$res = curl_exec($ch);
$errno = curl_errno($ch);
$error = curl_error($ch);
curl_close($ch);
if($errno > 0)
echo $errno.':'.$error;
else echo $res;
?>

Ответ сервера:
28:connect() timed out!
обрати внимание на эту страницу и сравни со своим курлом (там два варианта для яндекса) походу дела в курле недостаточно данных- вот и ждет ответ и время ожидания заканчиваеться (так вроде в ошибке написанно у тебя)
http://forum.antichat.ru/threadnav40896-1422-10.html

Nightmarе
09.01.2010, 15:40
обрати внимание на эту страницу и сравни со своим курлом (там два варианта для яндекса) походу дела в курле недостаточно данных- вот и ждет ответ и время ожидания заканчиваеться (так вроде в ошибке написанно у тебя)
http://forum.antichat.ru/threadnav40896-1422-10.html
Да нет, не в нём дело. На других сайтах он работает нормально, а на нужном мне ошибка 28, ни сокэты не пашут, ни курица, хотя в конфиге написанно, что всё включено. Вот и не пойму, почему запросы не работают.

b3
09.01.2010, 15:43
Какие функции кроме как fsockopen и cURL могут послать сайту POST запрос?

Да, и ещё из конфига phpinfo:
cURL support enabled
cURL Information libcurl/7.18.1 OpenSSL/0.9.7d zlib/1.1.4

Вроде бы cURL включён, но при попытке отправить пакет с данными, выдаёт ошибку 28
Ну вот пример например:

<?php
$ch = curl_init('http://ya.ru');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
$res = curl_exec($ch);
$errno = curl_errno($ch);
$error = curl_error($ch);
curl_close($ch);
if($errno > 0)
echo $errno.':'.$error;
else echo $res;
?>

Ответ сервера:
28:connect() timed out!

curl_setopt($ch, CURLOPT_TIMEOUT, 3); Выставь больше, у тебя видимо слабый канал, поставь 10.

Kusto
09.01.2010, 15:44
значит надо снифать что запрашивает сервак (прописывает ли кукисы, инфо по браузеру, рефер откуда идет и т д) и из этих данных уже плясать (я даже непредставляю как можно что то отправить на сайт если он не запрашивает у тебя этих данных)

Gifts
09.01.2010, 15:58
Komyak imageGD - это не только создание собственных капчей, но и произвольные действия над чужими

Nightmarе
09.01.2010, 16:04
curl_setopt($ch, CURLOPT_TIMEOUT, 3); Выставь больше, у тебя видимо слабый канал, поставь 10.
Поставил 30, потом 60, тоже самое.
Складывается ощющение файрвола чтоли... Ось Линукс...

Tigger
09.01.2010, 16:26
Для своих нужд потребовался маленький постер в ЖЖ. Быстренько все отснифал, накодил, послал нужные POST запросы, но мне постоянно приходит ответ:
"Bad Unicode Input
Your browser sent some text which is not recognised as valid text in the UTF-8 encoding, as it should be. This might happen if you forced your browser to view the previous page in some other encoding rather than UTF-8. It may also indicate a bug in the browser. If you cannot get around this error, contact us."

Я и сам скрипт переделал в UTF-8, и хидеры ставил, и в мета тэги прописывал - все-ровно. Подскажите, пожалуйста!!!

-=lebed=-
09.01.2010, 16:29
Для своих нужд потребовался маленький постер в ЖЖ. Быстренько все отснифал, накодил, послал нужные POST запросы, но мне постоянно приходит ответ:
"Bad Unicode Input
Your browser sent some text which is not recognised as valid text in the UTF-8 encoding, as it should be. This might happen if you forced your browser to view the previous page in some other encoding rather than UTF-8. It may also indicate a bug in the browser. If you cannot get around this error, contact us."

Я и сам скрипт переделал в UTF-8, и хидеры ставил, и в мета тэги прописывал - все-ровно. Подскажите, пожалуйста!!!


Бад Unicode Input
Ваш браузер послал какой-нибудь текст, который не признается действительным текст в UTF-8 кодировке, как это и должно быть. Это может произойти, если вы заставили браузер для просмотра на предыдущую страницу в другой кодировке, а не UTF-8. Он также может указывать на ошибку в браузере. Если вы не можете обойти это ошибка, свяжитесь с нами.

Чёт отправляется из данных не в юникоде, а требуется юникод!
Код скрипта в тегах php в студию! ;)

Tigger
09.01.2010, 16:41
Бад Unicode Input
Ваш браузер послал какой-нибудь текст, который не признается действительным текст в UTF-8 кодировке, как это и должно быть. Это может произойти, если вы заставили браузер для просмотра на предыдущую страницу в другой кодировке, а не UTF-8. Он также может указывать на ошибку в браузере. Если вы не можете обойти это ошибка, свяжитесь с нами.

Чёт отправляется из данных не в юникоде, а требуется юникод!
Код скрипта в тегах php в студию! ;)


А бля :D
Я просто в строчке с пост запросом букву пропустил :D

Kusto
09.01.2010, 20:43
[CODE]

а это может быть связано с тем, что суперссылкивконтакта сразу все вместе выдергиваются и вставляются и из-за этого он переходит только по последней, третей ссылке в блоке?
решил я проверить (мож действительно происходило что то фантастическое у тебя)- вывод сделал такой что у тебя дело не в циклах а в способе по которому ты на ссылку заходиш
смысл такой- береться первый акк- он заходит на http://otvet.mail.ru/question/1 затем на http://otvet.mail.ru/question/2 и потом на http://otvet.mail.ru/question/3 затем меняеться акк который заходит по ссылкам 4,5,6 (и т д) (можеш вручную проверить чтоб убедиться что все правильно)
ну а вот собственно такая форма работает (правда авторизацию не делал- ты говорил что с ней все ОК)


<?php
function curl($url,$post)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
};
$k = file('id.txt');
$x= file('name.txt');
$a=array_chunk($k,3);
foreach ($a as $c => $d){
echo " </br> дернули акк $x[$c] и залогинились</br></br>";
foreach ($d as $f) {
$url = "http://otvet.mail.ru/question/".$f;
$start = curl($url,$post_n);
echo $start;
}
}
?>


вот так примерно и работает

oldsys
09.01.2010, 20:54
В том то и дело что нету ! А захожу из Мозилы всё нормально. Да и почти всем приложениям закрыт доступ в Интернет ! Вот например Стим когда его запускаешь появляется реклама и домашняя страница . Так вот на них тоже пишет что не может подключится в интернет. Полазил в Брандмауэре вроде нигде доступ не запрещен !
Пробовал удалить Outpost но после не чего не меняется те же ошибки и те же проблемы ! А что делать не знаю :confused: будьте любезны найдите ответ на мой вопрос !

Ser_Djuk
09.01.2010, 21:42
дайте какой-то скрипт для массовой рассылки спама, email сообщений

Gifts
09.01.2010, 22:51
Ser_Djuk while (1) {mail($to, $subject, $message, $additional_headers, $additional_parameters);}

admink1
10.01.2010, 02:54
вот так примерно и работает


$test= file('groups.txt');
for ($i=0; $i<1; $i++)
{
$str2 = $test[$k];
print "$str2";
}



вот так вот сделал, то есть каждый раз берет следующую строчку, спасибо большое еще раз ;)

ubuntu
10.01.2010, 03:04
как с помощью php отключить интернет?

warlok
10.01.2010, 03:10
никак, можно только попытаться заддосить если выйдет (:

ubuntu
10.01.2010, 03:13
как никак? такого слово не должно быть :)
а через php-gtk2 нельзя?
ps я не знаю, что это, прост подсказали ;)

warlok
10.01.2010, 03:56
php-gtk2 это всеголишь аля php2exe как я понимаю, т.е. тебе всеравно прийдеться заставить запустить пользователя твой файл так что подобная реализация ИМХО какоето изврашение и излишество темболее что файл получиться большим :)
мм впринципе тогда можно выполнить запрос из консоли...

system("rasdial adsl /d");

где adsl это имя твоего инет подключения

4p3
10.01.2010, 07:46
Не хотет выводить элемент массива в новой строке. Подскажите, пожалуйста, в чем проблема?

if (isset($_REQUEST['scandir']))
{
$file_list = scandir($_REQUEST['scandir']);
foreach($file_list as $key=>$value)
echo "$key = $value \n";
}

shell_c0de
10.01.2010, 08:19
if (isset($_REQUEST['scandir']))
{
$file_list = scandir($_REQUEST['scandir']);
foreach ($file_list as $key => $value) {
$value .= "\t<option value=\"$key\">$value</option>\n";
}
echo("<OPTION VALUE=$key = $value</OPTION>\n";
}

4p3
10.01.2010, 08:36
Благодарю за ответ, однако, мне не требуется вывод в html текст. Просто вывод на экран или в файл.

ubuntu
10.01.2010, 10:34
php-gtk2 это всеголишь аля php2exe как я понимаю, т.е. тебе всеравно прийдеться заставить запустить пользователя твой файл так что подобная реализация ИМХО какоето изврашение и излишество темболее что файл получиться большим :)
мм впринципе тогда можно выполнить запрос из консоли...

system("rasdial adsl /d");

где adsl это имя твоего инет подключения

спасибо большое, то что и требовалось мне :)

m0Hze
10.01.2010, 16:54
Есть ли роднаяф-ция для деления массива по ключу?
Тоесть:

$array = array(1,2,3,4,55,6,7,8,9);
$del = array_func($arr,6);

Кагбе делит на 2 массива, до ключа 6 и после него.Есть ли что то такое? или юзать свою,на циклах?(

m0Hze
10.01.2010, 16:59
Есть ли роднаяф-ция для деления массива по ключу?
Тоесть:

$array = array(1,2,3,4,55,6,7,8,9);
$del = array_func($arr,6);

Кагбе делит на 2 массива, до ключа 6 и после него.Есть ли что то такое? или юзать свою,на циклах?(
Как всегда,сам спросил,и тут же ответ нашол :)
array_chunk ( array $input , int $size [, bool $preserve_keys = false ] )

ubuntu
10.01.2010, 18:33
мм впринципе тогда можно выполнить запрос из консоли...

system("rasdial adsl /d");

где adsl это имя твоего инет подключения


а можно еще как нить убить какой-либо процесс? :)

Kaimi
10.01.2010, 18:49
а можно еще как нить убить какой-либо процесс?


<?php
system("taskkill /F /IM notepad.exe");
?>

REBUUS
11.01.2010, 01:03
как через GET передать ссылку? что то просто так не передает ссылки ютуба , хотя это не имеет значение

REBUUS
11.01.2010, 03:34
как через GET передать ссылку? что то просто так не передает ссылки ютуба , хотя это не имеет значение

решил вопрос если кому интересно

base64_encode(); # Шифруем
base64_decode(); # Расшифровываем


интересно было послушать другие варианты

tp123
11.01.2010, 07:19
как загрузить/сохранит на компьютер значение капчи, что бы потом отправить на распознание
// Создаем подключение
if( $curl = curl_init() ){

// Нужно загрузить главную страницу бобра
curl_setopt($curl,CURLOPT_URL,'http://id.rambler.ru/script/newuser.cgi');

// Нужно помнить кукисы!
curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile");

// Скачанный код возвращаем в переменную а не в поток
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

// "Следовать туда, куда зовут". Если сервис выдает 302 код, мы следуем по этой ссылке
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);

// Таймаут, если сервис не отвечает больше 30 секунд, выходим
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,30);

// Активируем GZIP сжатие трафика
curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate') ;

// Соврем Бобру, напишем в юзер-агент неправду
curl_setopt($curl,CURLOPT_USERAGENT,'$user_agent') ;


// Если все ок, в $html вернется html код главной страницы
if( $html = curl_exec($curl) ){

// Указываем куда отправлять запрос
curl_setopt($curl,CURLOPT_URL,'http://id.rambler.ru/script/newuser.cgi');

// Указываем подключению, что слать нужно не GET (по умолчанию), а POST запросы
curl_setopt($curl,CURLOPT_POST,TRUE);

// Указываем, что именно отправлять в POST данных, на этой стадии происходит ввод логина/пароля
curl_setopt($curl,CURLOPT_POSTFIELDS,"login=$login&firstname=$name&lastname=$lastname");

if($html = curl_exec($curl)){

// ищем секретный id-картинки
if(preg_match('#<img src="http://id.captcha.rambler.ru/(.*).jpg" alt="" border="0" vspace="2">#', $html, $capcha)){

}

Komyak
11.01.2010, 09:13
Не хотет выводить элемент массива в новой строке. Подскажите, пожалуйста, в чем проблема?

if (isset($_REQUEST['scandir']))
{
$file_list = scandir($_REQUEST['scandir']);
foreach($file_list as $key=>$value)
echo "$key = $value \n";
}

А если :

if (isset($_REQUEST['scandir']))
{
$file_list = scandir($_REQUEST['scandir']);
foreach($file_list as $key=>$value)
echo "$key = $value <br/>";
}

Или:

$fd=fopen('log.txt','a+');
if (isset($_REQUEST['scandir']))
{
$file_list = scandir($_REQUEST['scandir']);
foreach($file_list as $key=>$value)
fwrite($fd,$key."=".$value."\n");
}
fclose($fd);