ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   PHP (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [php] Новичкам: задаем вопросы (https://forum.antichat.xyz/showthread.php?t=40896)

Dr.Frank 30.05.2007 18:32

Да, совсем забыл, добавь после строчки
PHP код:

function cd_dir($dir){ 

строку
PHP код:

global $array


skzi 30.05.2007 22:42

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

p.s. если этот пост читает ктонибудь кто знает эти данные, просьба отписать их тут!




и еще... это конечно не в тему, но всетаки. Какой программой можно переделать песню стерео в звук 5.1 ???
очень нужно!

Gho_st 01.06.2007 19:12

объясните как мне вывести картинку с русским текстом средствами PHP.
Проблема в том что при использование функций ImageString() возникают проблемы с кодировкой (пробовал перекодировать текст в разные кодировки=(( нифига),
выводить текст с использованием TTF шрифтов немогу(по ходу проблема уже у хостинг провайдера, что-то там требуется активировать что у него не активировано)
вобщем выводятся ошибка =(((

Isis 01.06.2007 19:32

Заголовок страницы сделай с кодировкой windows-1251

Joker-jar 01.06.2007 19:42

Попробуй перед впихиванием строки в ImageString прогнать ее через это:

function win2uni($s)
{
return preg_replace('#[\xC0-\xFF]#se','"&#".(ord("$0")+1040-0xC0).";"',$s);
}

Gho_st 01.06.2007 23:03

2 Isis
немогу ибо в загаловке страници прописано
Content-type: image/png
дабы выводит оно кратинку
или я туплю?!

2 Joker-jar
=(( непопер этот вариант теперь на генерируемый средствами библиотеки GD картинки
за место русского языка красуются с е

Fr-Ron 02.06.2007 19:16

Есть код...

PHP код:

<?php
$q 
"Бла бла бла";
echo (
"<input type = text value = $q>");
?>

В таком случае в поле input будет только "Бла".
Обошел так :

PHP код:

<?php
$q 
"Бла бла бла";
?><input type = text value = "<? echo ($qst); ?>"><?
?>

Можно ли это обойти инным, менее геморным методом?

*Кол-во полей input зараннее не известно.

Joker-jar 02.06.2007 19:39

<?php
$q = "Бла бла бла";
echo ("<input type = text value = \"$q\">");
?>

Cond 02.06.2007 19:41

Есть 4 текстовых файла: a.txt b.txt c.txt d.txt
В каждом из них допустим по 1 переменной: $a=1; (в файле a.txt) $b=2; (в файле b.txt) $c=3; (в файле c.txt) $d=4; (в файле d.txt)
Можно ли с помощью php сделать так, чтобы эти переменные брались из разных файлов, сравнивались, создавался файл result.txt и там было большее число (например $d=4;)?

Joker-jar 02.06.2007 20:07

Конечно можно, вопрос стоит лишь в реализации. Если имена переменных заведомо известны, то, как вариант, можно прочитать все файлы, сожержимое обрамить в eval() и по циклу определить наибольшее. В противном случае парсить, скорей всего. Хотя кто-то может посоветовать и более элегантное решение

skzi 03.06.2007 01:11

Найти наибольшее значение можно следующим способом:
переменной max присваиваешь первой элемент массива, потом в цикле проверяешь, если arr[i]>max тогда max=arr[i] и усе.

The_HuliGun 03.06.2007 10:34

PHP код:

<?
 touch
('result.txt'); //создал файл
 
$res fopen ('result.txt',"r+");  //отркыл на запись
 
$a_ fopen ('a.txt',"r");  //
 
$b_ fopen ('b.txt',"r");  //  открыл файлы на чтение
 
$c_ fopen ('c.txt',"r");  //
 
$d_ fopen ('d.txt',"r");  //

 
$a fread ($a_,10);
 
$b fread ($b_,10);       // считал значение переменных
 
$c fread ($c_,10);
 
$d fread ($d_,10);

 
$max=0;

 if ((
$a>=$b)&&($a>=$c)&&($a>=$d)) $max=$a;
 if ((
$b>=$a)&&($b>=$c)&&($b>=$d)) $max=$b;  //определил максимальную
 
if (($c>=$a)&&($c>=$b)&&($c>=$d)) $max=$c;
 if ((
$d>=$a)&&($d>=$b)&&($d>=$c)) $max=$d;

 
fputs ($res,"$max"); // записал у файл

 
fclose($res);
 
fclose($a_);
 
fclose($b_);  // и не забыл позакрывать файлы
 
fclose($c_);
 
fclose($d_);
?>


ultimatum 03.06.2007 13:17

PHP код:

$a_ fopen ('a.txt',"r");  

fputs ($res,"$max");
 
fclose($a_); 

А есть же какой то косяк со стороны php , что по середине может вклиниться ещё какой нить процесс?или я не прав

Sn@k3 03.06.2007 13:27

попробуй =) а нах тебе, чем те линенйно не нравится

Cond 03.06.2007 16:10

Спасибо всем! :) Особенно The_HuliGun выручил спс.
И ещё вот
есть html страничка в интернете там таблица и её надо в многомерный массив перегнать.
Как сделать? Может есть у кого пример кода? :)

Gho_st 04.06.2007 20:51

Цитата:

Сообщение от ultimatum
PHP код:

$a_ fopen ('a.txt',"r");  

fputs ($res,"$max");
 
fclose($a_); 

А есть же какой то косяк со стороны php , что по середине может вклиниться ещё какой нить процесс?или я не прав

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

на сколько я понял ты про это

Kridan 04.06.2007 21:28

PHP код:

$a_=fopen("a.txt","a+");
flock ($fp,LOCK_EX);
fputs ($res,"$max");
fclose($a_); 

Разлочивать не надо перед закрытием - fclose сам разлочит.

DIAgen 06.06.2007 09:57

Просто не охота создавать новую тему, по этому запостю сдесь!
Трабла в том как можно разбить сторку вида:
Цитата:

ЬЭЮЯабвгдежзийклмнопрстуф хцчшщъыьэюя\x01\x02\x03\x04\x05\x06\x07 \x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x 14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&\'()*+,-./0123456789:;
Разобрать данную строку по символьно можно сделать без проблем, а нужно разбить эту сроку так что бы учитывались \x01, \x02 и так далее, т.е шли как один символ.
Если использовать регулярки сильно сложные получаться и время затраченное на разбор тоже будет большой.
Если будут какие-нибудь мысли по данной теме жду предложений...

Isis 07.06.2007 00:55

PHP код:

<?php
$arr 
'\x01\x02\x03\x04\x05\x06\x07\x08\x09
        \x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12
        \x13\x14\x15\x16\x17\x18\x19\x1a\x1b
        \x1c\x1d\x1e\x1f'
;
$x explode("\\"$arr);
foreach(
$x as $b)
echo 
"\\".$b."<br/>";
?>

Вывод:
Код:

\x01
\x02
\x03
\x04
\x05
\x06
\x07
\x08
\x09
\x0a
\x0b
\x0c
\x0d
\x0e
\x0f
\x10
\x11
\x12
\x13
\x14
\x15
\x16
\x17
\x18
\x19
\x1a
\x1b
\x1c
\x1d
\x1e
\x1f


The_HuliGun 07.06.2007 08:32

Код:

<?php
$str="фвафіаafdjasdjfowej\x1e\x10s\\\asdf%&**()";
echo"$str<br>";
for($i=0;$i<=strlen($str);)
 {
  echo"$str[$i]<br>";
  $i++;
 }
?>

В результате будет:

Код:

фвафіаafdjasdjfowejs\\asdf%&**()
ф
в
а
ф
і
а
a
f
d
j
a
s
d
j
f
o
w
e
j


s
\
\
a
s
d
f
%
&
*
*
(
)

Как видишь сочетание символов \x1e и \x10 воспринимается как один символ.

Dr.Frank 07.06.2007 14:36

Цитата:

Сообщение от The_HuliGun
Как видишь сочетание символов \x1e и \x10 воспринимается как один символ.

Если строка в двойных ковычках, то в твоем случае даже не надо смотреть сочетание сивмолов \x, PHP сразу понимает, что эт один символ..
PHP код:

<?php
$str
='фвафіаafdjasdjfowej\x1e\x10s\\\asdf%&**()';
echo
"$str<br>";
for(
$i=0;$i<=strlen($str);)
 {
   if(
$str[$i+1]=="x" && $str[$i]=="\\"){
     echo 
substr($str,$i,4)."<br>";
     
$i+=4;
   }else{
    echo
"$str[$i]<br>";
    
$i++;
  }
 }
?>


Cond 08.06.2007 02:05

У меня проблема в регулярных выражениях не могу сообразить как сделать чтобы все ячейки написанные ниже были помещены в массив :(
В HTML таблице есть ячейки вида:
Код:

<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a><font color=black>news</font></center></td>
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a></center></td>
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a></center></td>
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a></center></td>
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a><font color=black>news</font></center></td>

Там везде не просто везде News написано, а разная информация, естественно с буквами, цифрами, слэшами, пробелами, ентерами т.е выход делать регулярное выражение с тегами, а как именно сделать это регулярное выражение проблема :(, пробовал просто без помощи тегов делать не выходит.
Нужно чтобы только такого вида ячейки были помещены в массив.
Делаю так:
$exp = '/<td><center>(.*?)<br><a href=(.*?)>(.*?)<\/a><font color=(.*?)>(.*?)<\/font><\/center><\/td>/';
preg_match_all($exp, $str, $preg);
Пробовал и по другому составлять $exp но так и не додумался :((
В массив $preg заносятся только первая и последняя ячейки :(
А нужно чтобы каждая ячейка так как она распаложена шла и в массив ...
Т.е вариант типо сначало сделать $exp занести в массив потом сделать
Код:

$exp_2 = '/<td><center>(.*?)<br><a href=(.*?)>(.*?)<\/a><\/center><\/td>/';
Занести в массив отпадает надо чтобы поочереди всё было :(
Помогите разобраться плз как сделать :)
Вроде как и пустиковое то дело, а мне совсем непонятно :(.

grinay 08.06.2007 02:28

Стукни в асю 939455 помогу с регулркой.Просто не совсем вопрос понятен.

Isis 08.06.2007 02:52

Эм еси у тебя только первая и последняя, то прочитай внимательно про preg_match_all и его 4 парметром !

Cond 08.06.2007 03:21

Код:

<?php
$data="<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a><font color=black>news</font></center></td>
<td><center>news<br><a href='http://news.com/news/11/' class='news_11'><b>News</b></a></center></td>";

$exp = '/<td><center>(.*?)<br><a href=(.*?)>(.*?)<\/a>(.*?)<\/center><\/td>/';
preg_match_all($exp,$data,$math);
print_r($math[0]);
?>

Вот как всё решилось благодаря grinay! СПАСИБО ОГРОМНОЕ! Написал код за секунды :)
А я мучился целый день как же не догодался сюда написать :) даже спать не хотел пока не узнаю как всё делается :)
Теперь хоть и спать спокойно можно :).

hhover 08.06.2007 04:43

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

$exp = "/\<td\>\<center\>(.+?)\<br\>\<a\shref\=\'([^\']+?)\'[^\>]+?\>\<b\>(.+?)\<\/b\>\<\/a\>(\<font[^\>]*?\>(.+?)\<\/font\>)?\<\/center\>\<\/td\>/is

_Great_ 08.06.2007 16:24

Напомню, что в теме обсуждаются только вопросы, непосредственно связанные с ЯЗЫКОМ.
Оффтоп буду тереть и жестоко наказывать.

Cond 09.06.2007 01:08

hhover спасибо по прошлой проблемке, но сделал уже как grinay подсказал, всё работает, а раз работает пусть работает как есть :) Но всё равно спасибо!
Вот образовалась проблема не могу понять как решить :(
Есть вот такая HTML форма:
http://img55.imageshack.us/img55/4836/scrinma3.jpg
Туда вводятся числа в верхнюю строчку от 1 до 19 ,
во 2-ую (нижнюю) строчку от 1 до 20.
Нужно чтобы допустим ввожу я в первую строчку 2 во вторую 5 мне должно вывести куда-нибудь, например в файл result.txt вот такое вот:
Код:

12
13
14
15
23
24
25
34
35
45

Тоесть первая цифра 2 обозначает сколько всего должно быть цифр в каждой по две ...
Вторая цифра 5 обозначает что из неё будут браться цифры вида 1 2 3 4 5 и делаться двухзначная цифра ...
Надо чтобы цифры не повторялись например в цифрах выше нет цифр 11 22 33 44 55 Ещё если есть цифры 12, то 21 уже не надо. Если есть 23, то 32 не надо.
Если было бы в HTML форме первая цифра 3 вторая 5, тогда не должно было бы быть цифр 111 222 333 444 555 1x1 2x2 3x3 4x4 5x5 x11 x22 x33 x44 x55 11x 22x 33x 44x 55x (где x - любая цифра)
Вот что должно выводиться: 123 124 125 134 234 245 134 135 345 345

Ещё если уже есть 123, то цифры 321 231 213 132 уже не должны быть.
Как такое можно сделать? Помогите плз.
Кто поможет готовым скриптом, тому с меня сайт с веб шеллом с правами записи в разные папки.

Dr.Frank 09.06.2007 06:45

Цитата:

Сообщение от Cond
Тоесть первая цифра 2 обозначает сколько всего должно быть цифр в каждой по две ...
Вторая цифра 5 обозначает что из неё будут браться цифры вида 1 2 3 4 5 и делаться двухзначная цифра ...
Надо чтобы цифры не повторялись например в цифрах выше нет цифр 11 22 33 44 55 Ещё если есть цифры 12, то 21 уже не надо. Если есть 23, то 32 не надо.
Если было бы в HTML форме первая цифра 3 вторая 5, тогда не должно было бы быть цифр 111 222 333 444 555 1x1 2x2 3x3 4x4 5x5 x11 x22 x33 x44 x55 11x 22x 33x 44x 55x (где x - любая цифра)
Вот что должно выводиться: 123 124 125 134 234 245 134 135 345 345

Ещё если уже есть 123, то цифры 321 231 213 132 уже не должны быть.
Как такое можно сделать? Помогите плз.
Кто поможет готовым скриптом, тому с меня сайт с веб шеллом с правами записи в разные папки.

вот попробуй(параметры передаются через $f1 и $f2):

PHP код:

<?php
$file
=fopen("result.txt","w");
function 
a($t,$z,$s){
  global 
$f2,$f1,$file;
  for(
$q=($t+1);$q<=$f2;$q++){
  if(
$z<$f1)
    
a($q,($z+1),$s.$q);
  else
    
fwrite($file,$s.$q."\r\n");
  }
}
a(0,1,"");
fclose($file);
?>

Только я не догнал, почему у тебя второе число аж до 20? эт как? Цифр то всего 9(ну 10 с нулем, но он, как я понял, тебе не нужен).

Cond 09.06.2007 12:37

Цитата:

Сообщение от Dr.Frank
Только я не догнал, почему у тебя второе число аж до 20? эт как? Цифр то всего 9(ну 10 с нулем, но он, как я понял, тебе не нужен).

Допустим если $f1=2, а $f2=20,
тогда уже будут задействованы числа и 11 и 12 и так до 20, а в целом да они и состоят все из цифр 0-9 :)
Шелл в личке.
Скрипт работает, огромное СПАСИБО! :)

$Lemur$ 11.06.2007 13:38

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

нашел вот такой пример:

<?
$file = fopen("c:/www/html/file.txt","r");
if(!file)
{
echo("Ошибка открытия файла");
}
else
{
$buff = fread ($file,100);
print $buff;
}
?>

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

GoreMaster 11.06.2007 13:44

А не подойдет ли это:
PHP код:

$mail_list file("c:/www/html/file.txt","r");
for(
$i=0;$i 50000$i++){
echo 
"$mail_list[$i] <br>";



Dr.Frank 11.06.2007 16:11

Цитата:

Сообщение от GoreMaster
А не подойдет ли это:
PHP код:

$mail_list file("c:/www/html/file.txt","r");
for(
$i=0;$i 50000$i++){
echo 
"$mail_list[$i] <br>";



Почти.., только
PHP код:

$mail_list file("file.txt");
for(
$i=$number;$i < ($number+50000); $i++){
echo 
"{$mail_list[$i]} <br/>\r\n";


$number - переменная(номер), начиная с которого читаются E-mail

}{0TT@БЬ)Ч 11.06.2007 16:29

вот вытащил из скрипта
fsockopen($hostname,80,$errnum,$errstr,20)
и не пойму за что отвечает пременные $errnum,$errstr и почему именно 20?

Joker-jar 11.06.2007 16:50

Есть функция, генерирующая строку заданной длины из заданного символа?

Fire3d 11.06.2007 19:45

<?
$i=1;
while($i<15){
echo $i ."<br>";
$i++;
}
?>
Обьясните что означает выделеное жирным.

Fire3d 11.06.2007 19:51

Но просто ели убрать точку то скрипт не выполнится((( Что обозначает точка ? Извените за ламерские вопросы но я недавно пхп начал изучать и по ходу обучение от вопросов не куда не дется (

}{0TT@БЬ)Ч 11.06.2007 20:14

2Fire3d
<?
$a = "100";
$b = "200";
echo $a + $b ."\n"; //выведет "300"
echo $a . $b; //выведет "100200"
?>
вот глянь взял из книги ;)

$Lemur$ 11.06.2007 23:20

PHP код:

<?
  $file 
file("file.txt");
  
$start 0;
  
$end 1000;
  if(!
$file)
  {
    echo(
"Ошибка открытия файла");
  }
  else
  {
     for(
$i=$start;$i < ($start+$end); $i++) 
     {
      
printf("%s<br>"$file[$i]);
    }
  }
?>

сделал вот так спасибо :D

GoreMaster 11.06.2007 23:23

функция file("filename") считывает содержимое в файла в массив (=.
У тебя лист разбит на строки или просто список в файле через пробел?


Время: 14:17