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

159932
05.09.2008, 01:40
что тогда правильно ?
[то что пёр не массив упусил ..]

.:nbd:.
05.09.2008, 03:47
Можешь сделать так:

<?php
$per = explode("\n",file_get_contents('links.txt'));
echo "<html><head><meta http-equiv='refresh' content='0; URL=".$per[rand(0,count($per)-1)]."'></head></html>";
?>

Структура линкс.тхт такая:

http://google.ru/
http://ya.ru/
http://antichat.ru/

А в твоем примере ошибка в том, что file_get_contents возвращает строку а не массив, но строка в пхп это тоже массив, поэтому скрипт редиректит по адресам состоящим из одного символа входящего в адрес. Достаточно просто разбить строку на части и загнать все в массив. Я например выбрал explode ("разделитель", $строка_для_разбиения).

.:EnoT:.
05.09.2008, 05:58
Так сойдет?

if (!preg_match([^a-zA-Z],$page))
{
echo "error!";
}

ну или с помощью htmlentities() ?
и регулярка неправильная и хранить в базе уже обработанные данные функциями htmlentities() или htmlspecialchars() имхо тупость. Хотя есть любители.
Опять же, зачем фильтровать данные...что ж вы за книжки по php читали....поищи в соседней теме, статью от Нерезуса про защиту от sql-иньекций.

Регулярку можно сделать такой к примеру:
preg_match('#^[a-z]+$#i',$page)
это если хочешь чтобы только латинские буквы содержались в имени.

.:nbd:. а зачем?
$per = explode("\n",file_get_contents('links.txt'));
ГринБир написал же про функцию file(), и не потребуется разбивать на строки
$per = file('links.txt');

.:nbd:.
05.09.2008, 08:33
Ок, спорить не стану, ибо нет темы для спора =) Данным постом я не оправдывался, а лишь показал альтернативный способ. ГринБир привел один, я другой, у него конечно проще =).

nerezus
05.09.2008, 08:45
ИМХО с експлоудом нагляднее, тема же для новичков =) Никогда не пытайся отстаивать свою ошибку - будут по жизни проблемы.

truelamer
05.09.2008, 10:24
Помогите разобраться.

Стала возникать на сайте ошибка

Lost connection to MySQL server at 'reading initial communication packet'

каковы её причины возникновения?

[x26]VOLAND
05.09.2008, 10:27
MySQL-Сервер не отвечает на попытку подключения
Причина: сервер в дауне; либо файрвол.
//PS: Про такую вещь как "Английский язык" не слыхали? Даже не зная про компьютеры вообще можно понять смысл текста ошибки...

Zircool
05.09.2008, 11:33
Вопрос такой... есть пакак text в ней лежат файлы в формате txt. Такой вопрос как можно определить какое количество файлов лежит в папке txt их имена и создать такие же файлы но в другой папке tags только с расширением html. У кого нибудь есть общий план какие функции использовать, как преобразовать в html и сохранить в другой папке, думаю я смогу а вот как прочитать какое количество файлов лежит в папке и их имена не знаю как...

.:nbd:.
05.09.2008, 11:48
Используй scandir
$directory="c:/example/text";
$file_name_array=scandir($directory); //массив имен файлов
$kol_vo=count($file_name_array)-2; //кол-во файлов в папке

GreenBear
05.09.2008, 11:53
Zircool,
readdir, preg_match, copy

[x26]VOLAND
05.09.2008, 11:59
<?php
if ($handle = opendir('папка')) {

while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
$output = array_slice($files, 2);
echo '<pre>';
print_r($output); //выводим массив имён файлов
echo 'файлов:', sizeof($output); // ...и их кол-во
echo '</pre>';
closedir($handle);
}
?>

как преобразовать в html Что ты имеешь ввиду под преобразованием?

$kol_vo=count($file_name_array)-2; //кол-во файлов в папке К слову: sizeof быстрее count.

Zircool
05.09.2008, 12:22
[x26]VOLAND
Что ты имеешь ввиду под преобразованием?

Да я имею ввиду открытие документа txt копирование его содержимого, создание такого же документа только в новой папке tags с расширением html..

To` один вопросик какой функцией можно создать файл html..

[x26]VOLAND
05.09.2008, 12:24
Да я имею ввиду открытие документа txt копирование его содержимого, создание такого же документа только в новой папке tags с расширением html..Я понял.

To` один вопросик какой функцией можно создать файл html..fopen('xxx.html', 'a+')

Zircool
05.09.2008, 12:31
Ещё один вопросик по регулярке.... Из страницы надо вытащить текст


<div id="sidebar1">
<div id="dat"><div id="up">
Последний update <acronym title="Тематический индекс цитирования">тИЦ</acronym>:
29.08.2008 <a href="/update/">&raquo;</a><br />
Последний update <acronym title="Google Page Rank">PR:</acronym>
26.07.2008 <a href="/update/">&raquo;</a><br />
Последний update <acronym title="Яндекс выдача">ЯВ</acronym>:
04.09.2008 <a href="/update/">&raquo;</a><br />
</div></div><br />



текст надо вытащить



Последний update <acronym title="Тематический индекс цитирования">тИЦ</acronym>:
29.08.2008 <a href="/update/">&raquo;</a><br />
Последний update <acronym title="Google Page Rank">PR:</acronym>
26.07.2008 <a href="/update/">&raquo;</a><br />
Последний update <acronym title="Яндекс выдача">ЯВ</acronym>:
04.09.2008 <a href="/update/">&raquo;</a><br />


использую такую регулярку

$result=file_get_contents("http://pr-cy.ru/");
preg_match('#<div id="dat"><div id="up">(.*?)</div></div><br />#i',$result,$zret);
echo $zret[1];


Но не выводится результат..проблема в регулярке?

FrMn
05.09.2008, 13:03
да, в регулярке
'#<div id="dat"><div id="up">(.*?)</div></div><br />#is'
так должно нормально поидее работать, но проверить негде

GreenBear
05.09.2008, 13:07
$code = file_get_contents("http://pr-cy.ru/");
preg_match('/\<div id\="up"\>(.*?)\<\/div\>/s', $code, $out);
echo $out[1];

NuR
05.09.2008, 13:17
Ещё один вопросик по регулярке.... Из страницы надо вытащить текст



текст надо вытащить




использую такую регулярку

$result=file_get_contents("http://pr-cy.ru/");
preg_match('#<div id="dat"><div id="up">(.*?)</div></div><br />#i',$result,$zret);
echo $zret[1];


Но не выводится результат..проблема в регулярке?
preg_match ('~<div id="up">\s+?(.*)\s+?</div>~si', $text,$zret);

Zircool
05.09.2008, 14:11
Вопрос такой... скрипт, для вывода апов, которые грабятся


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://pr-cy.ru/");
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, "MSIE 7.0");
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$code = curl_exec($ch);
curl_close($ch);

preg_match('/\<div id\="up"\>(.*?)\<\/div\>/s', $code, $out);
$out=str_replace ("Последний",null,$out[1]);
$out=str_replace ("<a href=\"/update/\">&raquo;</a><br />","<br>",$out);
$out=str_replace ("u","U",$out);
echo $out;




Потом все это вставляю в блок сайта у которого кодировка Utf и все кодировка сбивается. Как можно это дело исправить?

ExZoD
05.09.2008, 14:46
Потом все это вставляю в блок сайта у которого кодировка Utf и все кодировка сбивается. Как можно это дело исправить?
открыть код в блокноте и сохранить с utf-кодировкой

tick
05.09.2008, 15:03
hi all :)

Подскажите пожалуйста, вроде где-то увас был скрипт, который выводит случайные картинки из сайта photoshare.ru на другой сайт, размером 200х200.

Заранее спасибо + 10.

svesve
05.09.2008, 16:14
Кто знает как реализовать такой процесс
Есть папка с файлами вида YYYYMMDD.txt

как сделать проверку на существование файла ? и если его нет отправить уведомление по почте?
Имя файла - текущая дата.
тобишь если сегодня 20080505 то скрипт проверит есть ли такой файл или нет если нет то отправит уведомление.

набросал что то вроде такого
<?php
$dir=opendir("C:/123/");
while ($d = readdir($dir)){
echo "$d <br>";
if (!ereg("20080808.txt",$d)){
print "no";
}
}
?>

Но если файла нет то постоянно выдает no
а файлов окло 500 =/

Shaitan-Devil
05.09.2008, 16:15
function post($scrurl)
{$path="POST $scrurl \\r\\n\\r\\n";
$fp=fsockopen("216.139.170.54",80);//Адрес прокси
$i=1;
while(!$i=2)
{$i++
fwrite($fp,$path);
sleep(60)//у-во секунд,до следующей отправки сообщений
}

Как сделать так чтобы сообщени было не пустое,а что-то отпралялось?

Chaak
05.09.2008, 17:11
Кто знает как реализовать такой процесс
Есть папка с файлами вида YYYYMMDD.txt

как сделать проверку на существование файла ? и если его нет отправить уведомление по почте?
Имя файла - текущая дата.
тобишь если сегодня 20080505 то скрипт проверит есть ли такой файл или нет если нет то отправит уведомление.

набросал что то вроде такого
<?php
$dir=opendir("C:/123/");
while ($d = readdir($dir)){
echo "$d <br>";
if (!ereg("20080808.txt",$d)){
print "no";
}
}
?>

Но если файла нет то постоянно выдает no
а файлов окло 500 =/
<?php
$date = 121207;
if(!file_exists('C:\123\\'.$date.'.txt')){
echo 'no';
}
?>

Gen1rus
05.09.2008, 21:42
Вопрос такой, допустим имею форму:
<form action="1.php" method=post>
Ваш номер телефона:<br>
<input type="text" name="phone" size=30 maxlength=60><br><input
type=submit value="Отправить">

файл 1.php:
<?php
$filename = 'test.txt';

if (is_writable($filename)) {

if (!$handle = fopen($filename, 'a')) {
echo "Не могу открыть файл ($filename)";
exit;
}

if (fwrite($handle, $_POST['phone']) === FALSE) {
echo "Не могу произвести запись в файл ($filename)";
exit;
}



fclose($handle);

} else {
echo "Файл $filename недоступен для записи";
}
?>

Как сделать чтобы данные, которые будут дублироваться в переменной $phone не записывались в файл test.txt ?

Chaak
05.09.2008, 21:46
Как сделать чтобы данные, которые будут дублироваться в переменной $phone не записывались в файл test.txt ?

if(strstr(file_get_contents('file.txt'), $_POST['phone']))){
echo 'Телефон есть';
}

P.S $_POST[] - глобальный, ассоциативный массив =\

Gen1rus
05.09.2008, 21:50
данные, которые вводятся в форму.
если они будут повторяться, надо сделать чтобы не записывались повторно в test.php

PEPSICOLA
06.09.2008, 03:15
У меня вопрос... ответьте пожалуйста. Люди, которые профессионально занимаются разработкой скриптов на php называются пиэчписты?

.:EnoT:.
06.09.2008, 03:23
я думаю просто php-программистами.
Ведь тех, кто на Дельфи кодит не называют же дельфистами))) хотя хз

PEPSICOLA
06.09.2008, 03:27
Ну не знаю если это можно сравнивать...
Ведь людей кто ездит на кране - называют Крановщики.
А тех, кто ездит на комбайнах, уже никак не назовешь...

ExZoD
06.09.2008, 03:46
пехапешники =)
так же как и сишники, шарповики (c#), делфятники и астматики =)
сорри за стеб

.:nbd:.
06.09.2008, 03:51
Ну не знаю если это можно сравнивать...
Ведь людей кто ездит на кране - называют Крановщики.
А тех, кто ездит на комбайнах, уже никак не назовешь...

Таких людей называют комбайнерами, а по теме php-программист, слышал не раз =)

nerezus
06.09.2008, 09:01
Люди, которые профессионально занимаются разработкой скриптов на php называются пиэчписты? Неа, пляхотумбами и коротомбами)))
Это называется Senior PHP Developer.

mff
06.09.2008, 11:18
Кто знает, что означают эти ошибки:
Warning: mysql_query(): Unable to save result set in...
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in... ???

Saint-Sky
06.09.2008, 11:28
Есть файл vhosts.conf(~ 3,5 Mb).
Пример одной записи из него:
<VirtualHost *>
<Directory /home/sites/x/xxx.ru>
Options +Includes
# -FrontPage-
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>

AuthName xxx.ru
AuthUserFile /home/sites/x/xxx.ru/_vti_pvt/service.pwd
AuthGroupFile /home/sites/x/xxx.ru/_vti_pvt/service.grp
</Directory>

ServerAdmin postmaster@xxx.ru
DocumentRoot /home/sites/x/xxx.ru/
ServerName xxx.ru
ServerAlias www.xxx.ru
ScriptAlias /cgi-bin/ /home/sites/x/xxx.ru/cgi-bin/
CustomLog /usr/local/apache/logs/combined/xxx.ru.access_log combined

BandWidthModule "On"
BandWidthPulse 1000000
MaxConnection 0
<Directory "/home/sites/x/xxx.ru">
# 1 mbps channel
BandWidth all 131072
</Directory>

</VirtualHost>

Мне нужно отпарсить его так, чтобы в другом файле были записи AuthName, AuthUserFile в виде xxx.ru:/home/sites/x/xxx.ru/_vti_pvt/service.pwd

В регулярках я - полный ноль(в php тоже почти). Пропарсил много тем, но всё что пробывал - не работает...
Последнее, на чем встал -
<?php
error_reporting(E_ALL);
set_time_limit(0);
$fr=fopen("t.txt","r");
$fp=fopen('file.txt', 'a+');

while (!feof ($fr))
{
$buffer = fgets($fr,255);

preg_match("#AuthName (.*)#", $buffer, $r);
preg_match("#AuthUserFile (.*)#", $buffer, $r1);

fwrite($fp, $r[1].":".$r1[1]."\r\n");

}
echo "Все сделано";

fclose($fr);
fclose($fp);
?>
Но выводит в файл в виде:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
xxx.ru
:
:/home/sites/x/xxx.ru/_vti_pvt/service.pwd

:
:
:
:
:
:
:
:
:
Еще ошибка:Notice: Undefined offset: 1 in z:\home\test.ru\www\sort.php on line 14

В чём трабла?

P.S. Про плюсы не забуду...

Chaak
06.09.2008, 11:48
Кто знает, что означают эти ошибки:
Warning: mysql_query(): Unable to save result set in...
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in... ???
Вторая ошибка возникает изза первой, а первая значит что запрос не может сохранить результат.

P.S учите английский

Nightmarе
06.09.2008, 12:55
Ну хто тут картинку вставил, тему читать сложно...

Gifts
06.09.2008, 14:32
Saint-Sky, во-первых, ты читаешь из файла не строки, а определеное число байт, и в переменную может попасть кусок текста например AuthUs, а при следующем чтении, оставшееся. Во-вторых, при каждой итерации цикла For будет записываться в выходной файл: <Пустая строка>:<пустая строка> Мой совет - учи регулярки, в жизни пригодится. Для тренировки можешь использовать например этот сайт:http://www.pcre.ru/eval/
А так, вот пример для твоей задачи
<?
$f=file_get_contents('t.txt');
$out=fopen("out2.txt",'a+');
$j=1;
$i=preg_match_all("#(<VirtualHost .*?>)([\s\S]*?)(AuthName )(\S*)([\s]*?)(AuthUserFile )(\S*)([\s\S]*?)(<\/VirtualHost>)\s*#i",$f,$match, PREG_PATTERN_ORDER);
for ($j=0;$j<$i;$j++)
{
fwrite($out,$match[4][$j].":".$match[7][$j]."\r\n");
}
fclose($out);
?>

++Norton++
06.09.2008, 14:51
mmf
Возможно результат не соответствует по типу. К примеру в базе INT а отправляется в запросе CHAR.

heretic1990
06.09.2008, 17:20
у меня тоже вопрос, чё это за ошибка и как её исправить

Fatal error: Call to undefined function echo_message()

Zircool
06.09.2008, 17:21
Такая проблема,открываю файл как массив , в файле порядка 20 строк, нахожу нужную строку и заменяюю её на null т.е. удаляю, затем очищаю документ и перезаписываю в него уже обработанный массив(с удаленной строкой), но в тексте вновь записанного файла пустая строка, а должна быть не пустая строка а следующий файл на её месте.. вот код


$delname=file('linklist.txt');
$delname=str_replace($_POST['unlinkfile'],null,$delname);
$clear=fopen("linklist.txt", "w");
$delname=implode("",$delname);
$taglist = fopen("linklist.txt", "a+");
fwrite($taglist, $delname);
fclose($taglist);



Файл linklist.txt был таким

1
2
3
4
5
6


а после обработки становится таким, к примеру удалим 3

1
2

4
5
6


а должно быть таким

1
2
4
5
6


Как это исправить?

D Mak
06.09.2008, 17:30
Zircool проще так:
$file = file('list');
unset($file(array_search($POST['delet'], $file)));
$fp = fopen('list', "w");
foreach($file as $str) fwrite($fp, $str."\r\n");
fclose($fp);

D Mak
06.09.2008, 17:31
у меня тоже вопрос, чё это за ошибка и как её исправить

Fatal error: Call to undefined function echo_message()
ты англицки не учил?
Вызов неизвестной функции echo_message()
че за функция такая? откуда ты ее взял?

Fuckel
06.09.2008, 17:38
у меня тоже вопрос, чё это за ошибка и как её исправить

Fatal error: Call to undefined function echo_message()
у тебя скрипт вызывает не описанную функцию echo_message().

Zircool
06.09.2008, 17:49
D Mak

Может быть и проще но у меня ешё есть выражение с регуляркой...


$deltag=file('tags.php');
$deltag=preg_replace('#<a href=\"'.$_POST['unlinkfile'].'\">(.*?)</a>,#is',null,$deltag);
$deltag=implode("",$deltag);
$clear_tags=fopen("tags.php", "w");
$taglist2 = fopen("tags.php", "a+");
fwrite($taglist2, $deltag);
fclose($taglist2);


Как в таком случае поступить?

D Mak
06.09.2008, 17:57
тогда лучше ваще читать не file-ом а get_file_contents-ом
и preg_replace("#</a>\r\n#si", null, $str);

ЗЫ а нафига ты два раза в конце файл открываешь?

Zircool
06.09.2008, 18:32
Согласен незачем, достаточно лишь

$taglist2 = fopen("tags.php", "a+");
//Заменить на
$taglist2 = fopen("tags.php", "w);
//и можно удалить
$clear_tags=fopen("tags.php", "w");



Просто видишь опять та же проблема, файл записывается с пропусками...

D Mak
06.09.2008, 18:43
\r\n поставил?

Zircool
06.09.2008, 21:10
Как правильно заставить работать функцию scandir() .. Заливаю в корень сайта скрипт 1.php На серваке есть папка data котрую надо просканировать на наличие файлов..

$files=scandir("/data");
foreach ($files as $file)
{
if(strlen($file)<3)
{}
else
{

$filenames[]=$file;

}
}
$names=implode("\r\n",$filenames);
echo $names;



Но в ответ ошибка.


Fatal error: Call to undefined function: scandir() in /home/a100mbps/public_html/XXXXXX/1.php on line 4

Gifts
06.09.2008, 21:23
Zircool Версия PHP какая? Scandir появился в 5

Zircool
06.09.2008, 23:34
Gifts да на том хостинге PHP Version 4.4.7, перезалил на другой с 5 версией и все работает...

OnArs
07.09.2008, 00:43
подскажите как на php в файле находить идентичные (одинаковые) строчки?

Банально брать элементы по порядку и прогонять по всему списку?

Gifts
07.09.2008, 01:06
OnArs,
Чисто предположение, не знаю насчет скорости выполнения:
$a=file('file.txt');
if ($a!==array_unique($a)) echo 'есть одинаковые строчки';

ExZoD
07.09.2008, 01:37
OnArs,
Чисто предположение, не знаю насчет скорости выполнения:
$a=file('file.txt');
if ($a!==array_unique($a)) echo 'есть одинаковые строчки';
ну если файл большой, то он не откроется так (у мну 40 кб не открылось =( ). а так нормуль. тока большой файл лучше тогда построчно считать вручную.

pento
07.09.2008, 02:22
Может просто прогнать через 'sort -u'?

PandoraBox
07.09.2008, 16:06
как отфильтровать/экранировать поле data перед отправкой в БД?

$start_date = $_POST['start_date'];
$end_date = $_POST['end_date'];

$sql = "INSERT INTO 'zakazy' ('namber', 'name', 'start_date', 'end_date')
VALUES ('$namber', '$firmname', '$start_date', '$end_date');";

CREATE TABLE `zakazy` (
`id` int(5) NOT NULL auto_increment,
`namber` int(5) NOT NULL,
`name` varchar(255) NOT NULL,
`start_date` date NOT NULL,
`end_date` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;

cylaaaan
07.09.2008, 16:10
<?
function chek($text)
{
$text = htmlspecialchars($text);
$text = addslashes($text);
return $text;
}

$start_date = chek($_POST['start_date']);
$end_date = chek($_POST['end_date']);

$sql = "INSERT INTO 'zakazy' ('namber', 'name', 'start_date', 'end_date')
VALUES ('$namber', '$firmname', '$start_date', '$end_date');";

?>

PandoraBox
07.09.2008, 16:50
if ((!is_numeric($namber) && isset($namber)))
{
$error = true;
$error_msg .= ($error_msg) ? "<br>" : "";
$error_msg .= 'Неверно заполнено поле "Номер договора"';
}

а если так if ($_POST['end_date']){
$error = true;
$error_msg .= ($error_msg) ? "<br>" : "";
$error_msg .= 'Неверно заполнено поле "Дата окончания"';
}

Есть альтернатива is_numeric() для date

Chaak
07.09.2008, 17:01
function is_date($date) {
if(preg_match("#^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$#",$date))
return true;
else
return false;
}
формат даты:
11.01.2008
Если соблюден, то true, иначе false

cylaaaan
07.09.2008, 17:01
какой формат у даты должен быть?
можно через регулярку проверить

Gifts
07.09.2008, 17:16
ChaaK слешей не многовато?) Тем более что по стандарту для мускуля формат должен быть YYYY-MM-DD
Так что регулярка будет:
if (preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/',$dat))

Zircool
07.09.2008, 17:53
Не могу понять не работает функция shuffle() для перемешивания массива. есть файл text.txt с таким содержимым

1
2
3
4
5


делаю так

$tagsforsite=file('text.txt');
$tagsforsite=shuffle($tagsforsite);
echo $tagsforsite[0];



ниак не выводит значения массива, если через foreach делаю выкидывает ошибку

Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\cms\editor_tags.php on line 284

Chaak
07.09.2008, 17:59
Не могу понять не работает функция shuffle() для перемешивания массива. есть файл text.txt с таким содержимым


делаю так

$tagsforsite=file('text.txt');
$tagsforsite=shuffle($tagsforsite);
echo $tagsforsite[0];



ниак не выводит значения массива, если через foreach делаю выкидывает ошибку
Я думал shuffle возвращает булевое значение(true||false).
Поэтому не $array = shuffle($array);
а
shuffle($array);

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

DiffuSer
07.09.2008, 21:25
Народ, новая суровая просьба от меня.

Как пропарсить Xml так, чтобы наименования тэгов были столбиками таблички, а данные в каждом повторяющемся тэге были строчкой таблицы? Ну т.е. представить Xml-данные в виде таблички Html, строчки в которой можно, допустим, покрасить, т.е. работать с ней уже, как с обычной Html-табличкой. Надеюсь, адекватно пояснил.

Dr.Frank
08.09.2008, 10:28
2DiffuSer
на примере rss античата:

<?php
$s=implode('',file("http://forum.antichat.ru/news.rss"));
$s=strstr($s,"<item>"); //Строка, начиная с которой нужно работать
preg_match_all("/<([a-zA-Z0-9:\"= ]+)>([^<]*)<\/[a-zA-Z0-9:]+>/",$s,$match);
$col=count(array_unique($match[1])); //Количество колонок
echo "<table border=1>";
echo "<tr>";
for($q=0;$q<$col;$q++){ //Выводим
echo "<td>".$match[1][$q]."</td>"; //имена
} //колонок
echo "</tr>";
/////////////////////////////////////Далее выводим данные
for($w=0;$w<(count($match[1])/$col);$w++){
echo "<tr>";
for($q=0;$q<$col;$q++){
echo "<td>".$match[2][$q+$w*$col]."</td>";
}
echo "</tr>";
}
echo "</table>";
?>

правда не выводится одна строка:<content:encoded><![CDATA[
но это можно доделать... xD

Nightmarе
08.09.2008, 15:04
Народ, подскажите плииз, как мне заархивировать на php папку (в .rar .gz это не важно), чтобы с максимальным сжатием и рядом с папкой, то есть путь указать какую папку, и полный путь куда именно сохранять на хосте.
Пробовал кучу вариантов, не пашет ;(
Линукс, и хост агава.

rushter
08.09.2008, 15:48
почитай тут
http://www.php.su/functions/?cat=zlib
делается при помощи zlib
вот ещё есть клаc для zip
http://www.phpclasses.org/browse/package/2322.html

Nightmarе
08.09.2008, 16:58
И нафига мне модуль?

nerezus
08.09.2008, 17:48
А нафига тогда спрашиваешь?

Nightmarе
08.09.2008, 17:53
А нафига тогда спрашиваешь?
Я спросил вопрос по php, а не про модули.
Какой командой можно заархивировать папку.

gisTy
08.09.2008, 18:48
Если сервер под управлением Linux, то можно попробовать следующим образом system('tar -cvvf foo.tar ./foo/');Где ./foo/ - архивируемая папка, а foo.tar - имя тарбала. Потом можно запаковать тарбал либо gzip'ом, либо bzip2.
И в зависимости от того, что разрешено на сервере, менять system().

Кубик Рубик
08.09.2008, 18:58
<?php
//Данные
$host = "localhost"; // Хост
$user = "root"; //Имя пользователя MySQL
$pass = "pass"; // Пароль пользователя MySQL
$db= "test";
//mysql connect
$mysqlconnect = @mysql_connect($host,$user,$pass);
if (!$mysqlconnect)
{
die("<font color=\"red\">Ошибка MySQL-сервера!</font>");
}
#================================================= =========
mysql_select_db($db,$mysqlconnect);
$result = mysql_query("SELECT name FROM pages");
$num_rows = mysql_num_rows($result);
$num_names = mysql_fetch_array($result, MYSQL_NUM);
#================================================= =========
$a=0;
while($a<$num_rows)
{
$a=$a+1;
echo $num_names['$a'].'<br>';
}
?>

Не получается выводить из строки name имена по очереди , уже запутался :confused: Заранее спасибо.

GreenBear
08.09.2008, 19:01
господи, держит же свет извращенцев =)

$num_names = mysql_fetch_array($result, MYSQL_NUM);
#================================================= =========
while($num_names = mysql_fetch_array($result, MYSQL_NUM)){
echo $num_names[0];
}

Кубик Рубик
08.09.2008, 19:04
Спасибо , но он же не выводит второе имя , а выводит только первое.

OnArs
08.09.2008, 20:44
Здрасте!

Как получить код заданной страницы?
И можно ли его запихнуть его в текстовую переменную, чтобы потом искать в нём текст?

Спасибо! :d

nerezus
08.09.2008, 20:54
OnArs
$page = file_get_contents('http://ya.ru');

Ch3ck
08.09.2008, 23:03
Унпаз, ссылок море... ё-маё...

OnArs
08.09.2008, 23:07
OnArs
$page = file_get_contents('http://ya.ru');
Подскажи ещё пожалуйста, допустим у меня в исходном коде страницы есть текст

<a href="http://site1.ru">Blblabla</a>

<a href="http://site2.ru">Bфвlabla</a>



мне нужно вырезать все ссылки:
http://site1.ru
http://site2.ru

Как сделать?

159932
08.09.2008, 23:13
preg_match_all('/http:\/\/site2\.ru/',$source,$kolobok);
print_r($kolobok);

Doom123
08.09.2008, 23:14
preg_match_all('#<a href="(.+?)">.+?</a>#',$page,$pock);

print_r($pock[1]);

Ch3ck
08.09.2008, 23:15
<?php
$text="text1 <a href=\"index.php\">link1</a> text2 <a href=\"index.php\">link2</a>";
preg_match_all("#<a[^>]+>.+?</a>#is",$text,$out);
print_r ($out);
?>

rushter
08.09.2008, 23:16
http://www.php.su/functions/?preg-match-all

Кубик Рубик
08.09.2008, 23:44
Привет! Я составил свой вопрос в форме задачи:

Что у нас есть? -
У нас есть Таблица в БД, ее содержание вы видете на картинке:
http://i079.radikal.ru/0809/a0/bf8e12d588b6.jpg
Как видите мы имеем столбцы name и content.
Задача:
Сделать так чтобы выводились все имена страниц из столбца name (Независимо сколько их).

Например:
index
about
и т.д.

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

<?php
//Данные
$host = "localhost"; // Хост
$user = "root"; //Имя пользователя MySQL
$pass = "pass"; // Пароль пользователя MySQL
$db= "test";
//mysql connect
$mysqlconnect = @mysql_connect($host,$user,$pass);
if (!$mysqlconnect)
{
die("<font color=\"red\">Ошибка MySQL-сервера!</font>");
}
#================================================= =========
mysql_select_db($db,$mysqlconnect);
$result = mysql_query("SELECT name FROM pages");
$num_rows = mysql_num_rows($result);
$num_names = mysql_fetch_array($result, MYSQL_NUM);
for($i=0; $i<$num_rows; $i=$i+1)
{
echo $num_names[$i];
}
?>

ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО! :rolleyes:

++Norton++
08.09.2008, 23:53
Немного не понял, зачем здесь pages? :) А если попробовать SELECT * FROM name?

Сорри, просмотрел, запрос правильный был...

Кубик Рубик
08.09.2008, 23:57
НУ тогда как организовать выдачу всех имен? если mysql_fetch_array ошибку выдал =(

GreenBear
09.09.2008, 00:03
Спасибо , но он же не выводит второе имя , а выводит только первое.

while($num_names = mysql_fetch_array($result, MYSQL_ASSOC)){
echo $num_names['name'], $num_names['content'];
}

Кубик Рубик
09.09.2008, 00:12
$sql = "SELECT name FROM pages";
$result = mysql_query($sql, $mysqlconnect);
if($result && (mysql_num_rows($result) > 0)) {
while($row = mysql_fetch_assoc($result)) {
echo(htmlspecialchars($row['name']));
echo(htmlspecialchars($row['col'])); } }
Ничего не выводит(

GreenBear

Прочитай заново вопрос=), Спасибо)))

Spyder
09.09.2008, 00:15
Зачем тебе mysql_num_rows,
зачем тебе for когда проще использовать while?

mysql_select_db($db,$mysqlconnect);
$res = mysql_query("SELECT * FROM pages");
while ($row=mysql_fetch_array($res)) {
echo $row['name']."<BR>";
}

GreenBear
09.09.2008, 00:16
Кубик Рубик пиздец ты конечно . иди читай маны

Кубик Рубик
09.09.2008, 00:31
да вот только ману и купил то.

Спайдер, респект :) Спасибо)

GreenBear
09.09.2008, 01:03
Спайдер, респект Спасибо)

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

php.net/function_name
function_name НАДО ЗАМЕНИТЬ на ту функцию, мануал по которой тебе нужен! если нужен индекс доков - php.net/docs ! там даже твой язык определит

DiffuSer
09.09.2008, 10:44
$s=implode('',array("$buf"));
$s=strstr($s,"<GOS_ANS>");
preg_match_all("/<([a-zA-Z0-9:\"= ]+)>([^<]*)<\/[a-zA-Z0-9:]+>/",$s,$match);
$col=count(array_unique($match[1]));
echo "<table border=0>";
echo "<tr>";
for($q=0;$q<$col;$q++){
echo "<td>".$match[1][$q]."</td>";
}
echo "</tr>";

for($w=0;$w<count($match[1]);$w++){
echo "<tr bgcolor='#C9C9C9'>";
$w = $w+2;
for($q=0;$q<$col;$q++){
echo "<td>".$match[2][$q+$w*$col]."</td>";
}
echo "<tr>";
$w = $w-1;
for($q=0;$q<$col;$q++){
echo "<td>".$match[2][$q+$w*$col]."</td>";
}
echo "</tr>";
}
echo "</table>";

На вход дается XML-ответ, но в результате выполнения в конце остаются множественные пустые строки таблицы (из-за того, что поле GOS_ANS не имеет собственных данных, но передает перенос строки). Как убрать эти лишние строки?

Dr.Frank
09.09.2008, 15:53
2DiffuSer
эм.. я это чуть позже поправил, строчку
for($w=0;$w<count($match[1]);$w++){
замени на
for($w=0;$w<(count($match[1])/$col);$w++){

svesve
09.09.2008, 17:01
может сможет кто помочь

есть файлы такого вида YYMMDD+xxxxxx+"-TTFILE"+yyyyy+".txt" (например
080905130635-TTFILE012351.txt)
xxxxxx и yyyyy изменяющиеся числа

возможно через file_exists проверить файл не целиком по имени а по какойнить маске??? конкретнее YYMMDD*.txt

Zircool
09.09.2008, 19:00
такой вопрос с помощью какой функции можно узнать разрешение картинки и её размеры?

D Mak
09.09.2008, 19:11
такой вопрос с помощью какой функции можно узнать разрешение картинки и её размеры?
imagesx, imagesy
GD библа (http://ru2.php.net/manual/en/ref.image.php)

svesve
scandir (http://ru2.php.net/manual/en/function.scandir.php) и пройдись по массиву регуляркой (http://ru2.php.net/manual/en/function.preg-match.php)

DIAgen
09.09.2008, 19:13
такой вопрос с помощью какой функции можно узнать разрешение картинки и её размеры?
Смотрю тут http://www.php.net/manual/ru/book.image.php тут все есть (:

OnArs
09.09.2008, 22:37
Как загрузить фотографию по URL?
Например как это сделано на radikal.ru

Заранее Благодарен!
С меня + =)

rushter
09.09.2008, 22:44
http://forum.antichat.ru/thread82495.html

Zircool
09.09.2008, 22:51
Ещё один вопросик. Есть файлик tags.php в этом файле ссылки вида

<a href="tag_descr_treb.php">Требования к системе</a>,
<a href="tag_hosting_lot.php">Хостинг</a>,
<a href="tag_moneta_links.php">Продажа ссылок</a>,


Нужно написать скрипт где вводишь чтарое имя ссылки и новое, и скрипт менял бы это имя на новое... Пример
Было
<a href="tag_moneta_links.php">Продажа ссылок</a>,
Стало
<a href="tag_moneta_links.php">Самая лучшая продажа ссылок</a>,

Написал такой код

if (isset($_POST['butname']))
{
$oldname=$_POST['istag'];
$oldname=trim($oldname);
$newname=$_POST['newname'];
$newname=trim($newname);
$filetags=file('tags.php');
preg_replace("#<a href=\"(.*?)\"".$oldname."<\/a>,#is","#<a href=\"(.*?)\"".$newname."<\/a>,#is",$filetags);
}
?>


Так можно использовать функцию preg_replace?

.:EnoT:.
10.09.2008, 00:25
if (isset($_POST['butname'])){
$oldname = trim($_POST['istag']);
$newname = trim($_POST['newname']);
$filename = 'tags.php';
$file = str_ireplace($oldname, $newname, file_get_contents($filename));
$put = file_put_contents($filename, $file);
if($put) echo 'Строка заменена';
}

OnArs
10.09.2008, 00:30
Мужики, выручите!

Нудно вывести на страницу текстовую форму с Html ссылкой типа <img scr="http://www.site.ru/upload/imaga.jpg />

Делаю это так
echo '<input size=50 type=text value=&lt;img src=http://'.$_SERVER["SERVER_NAME"].'/upload/'.$file.' /&gt;';

Даже текстовая форма выводится, но с содержимым <img и не более того... как бЫть? :(

.:EnoT:.
10.09.2008, 00:34
Надо кавычки ставить))
echo '<input size=50 type=text value="&lt;img src=http://'.$_SERVER['SERVER_NAME'].'/upload/'.$file.' /&gt;" />';

NuR
10.09.2008, 00:38
можно (и даже лучше) вот так
echo '<input type="text" size="50" value="'.htmlspecialchars('<img src="'.$_SERVER["SERVER_NAME"].'/upload/'.$file.' " />').'"/>';

OnArs
10.09.2008, 00:38
Надо кавычки ставить))
echo '<input size=50 type=text value="&lt;img src=http://'.$_SERVER['SERVER_NAME'].'/upload/'.$file.' /&gt;" />';

можно (и даже лучше) вот так
echo '<input type="text" size="50" value="'.htmlspecialchars('<img src="'.$_SERVER["SERVER_NAME"].'/upload/'.$file.' " />').'"/>';

Мдааа... я больше часа бился над этим... :eek:
Большое Спасибо! :D

И ещё один последний вопрос:
Как сделать из
строка1
строку
stroka1 ?

Я рассматриваю вариант с использованием str_replace, но это долго и нудно... Может быть есть уже готовые решения или готовые функции?

NuR
10.09.2008, 00:40
function translit( $cyr_str) {
$tr = array(
"Ґ"=>"G","Ё"=>"YO","Є"=>"E","Ї"=>"YI","І"=>"I",
"і"=>"i","ґ"=>"g","ё"=>"yo","№"=>"#","є"=>"e",
"ї"=>"yi","А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
"Д"=>"D","Е"=>"E","Ж"=>"ZH","З"=>"Z","И"=>"I",
"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
"У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
"Ш"=>"SH","Щ"=>"SCH","Ъ"=>"'","Ы"=>"YI","Ь"=>"",
"Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"'",
"ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
);
return strtr($cyr_str,$tr);
}
во как

+toxa+
10.09.2008, 00:43
$tr = array(
"Ґ"=>"G","Ё"=>"YO","Є"=>"E","Ї"=>"YI","І"=>"I",
"і"=>"i","ґ"=>"g","ё"=>"yo","№"=>"#","є"=>"e",
"ї"=>"yi","А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
"Д"=>"D","Е"=>"E","Ж"=>"ZH","З"=>"Z","И"=>"I",
"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
"У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
"Ш"=>"SH","Щ"=>"SCH","Ъ"=>"'","Ы"=>"YI","Ь"=>"",
"Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"'",
"ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
);

function translit( $cyr_str) {
global $tr;
return strtr($cyr_str,$tr);
}


первая строка по запросу "translit php" в гугле

NuR
10.09.2008, 00:44
ога

OnArs
10.09.2008, 09:10
Как при выводе изображения на страницу применить к ней какой-нибудь эффект, например откидывание теней изображением?

slesh
10.09.2008, 09:16
увы просто так это не сделаешь. А так в IE есть поддержака фильтров на уровне css
пример:

1) Фильтр DropShadow рисует сплошной силует объекта, смещённый в заданном направлении, создавая тем самым эффект объекта, расположенного над страницей и отбрасывающего на неё тень

Синтаксис:
STYLE="filter:dropshadow(Color=значение, OffX=значение,OffY=значение,positi ve=эначение)"

Параметры:
Color - Цвет тени
OffX - Смещеение тени относительно текста по оси X
OffY - Смещеение тени относительно текста по оси Y
positive - Характер освещения (0 или 1)

Пример фильтра dropshadow
<TABLE BORDER=1>
<TR>
<TD STYLE=filter:dropshadow(color=silver,offx=3,offy=3 ,positive=0)>Пример фильтра shadow
</TABLE>

--------------------------------------------------------------------------------
2) Фильтр Shadow создает эффект тени

Синтаксис: STYLE="filter:shadow(Color=значение, Direction=значение)"
Параметры:
Color - Цвет тени
Direction - Направление тени в градусах
Пример фильтра shadow
<TABLE BORDER=1>
<TR>
<TD STYLE=filter:shadow(color=green,direction=45)>Пример фильтра shadow
</TABLE>

OnArs
10.09.2008, 09:31
увы просто так это не сделаешь. А так в IE есть поддержака фильтров на уровне css
пример:

1) Фильтр DropShadow рисует сплошной силует объекта, смещённый в заданном направлении,
.....
<TR>
<TD STYLE=filter:shadow(color=green,direction=45)>Пример фильтра shadow
</TABLE>

Спасибо за ответ.

Тоесть тень можно создать только через стили и CSS?
Пойду читать про них =)

Spyder
10.09.2008, 15:52
а чё вебшеллы не позвляют создать файл и потом скопировать в него содежримое шелла? или просто с локалки залить?

Gifts
10.09.2008, 18:43
Ситуация - запускаем на сервере PHP бот джаббера/icq/etc (ignore_user_abort=1 и time_limit=0) Можно ли реализовать, чтобы отправляя пост на этот скрипт бот отправлял сообщение.

То есть - бот не переподключается, а забирая данные переданные из формы отправляет сообщение

Chaak
10.09.2008, 18:53
Ситуация - запускаем на сервере PHP бот джаббера/icq/etc (ignore_user_abort=1 и time_limit=0) Можно ли реализовать, чтобы отправляя пост на этот скрипт бот отправлял сообщение.

То есть - бот не переподключается, а забирая данные переданные из формы отправляет сообщение
Чеза тупость =)))

if($_POST['message'] != '') send($_POST['message'];

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



UPD: Вообще php - язык пошаговый(Т.Е выполняется пом ере работы скрипта. Тут нельзя зациклить программу как в ассемблере, c++ и других языках).

Gifts
10.09.2008, 19:43
ChaaK, Ммм, крутой крутой. Банальный пример:

@set_time_limit(0);
@ini_set("max_execution_time", 0);
@ignore_user_abort(1);


switch ($_GET['cmd'])
{
case 'start':
$f=fsockopen('ya.ru',80);
$status=stream_get_meta_data($f);
while (!$status['eof'])
{
sleep(1);
}
break;
case 'send':
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: ya.ru\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($f, $out);
while (!feof($f))
{
echo fgets($f, 128);
}
fclose($f);
break;
}

Если запустить скрипт с параметром ?cmd=start он открывает сокетное соединение и не разорвет его. (проверить можно netstat -b) А теперь через это соединение хочется получить все таки страницу. Как реализовать?
UPD: Вообще php - язык пошаговый(Т.Е выполняется пом ере работы скрипта. Тут нельзя зациклить программу как в ассемблере, c++ и других языках). Зациклить-то можно, пример из этого поста - доказательство. Соединение с яндексом будет висеть достаточно долго, а если соединение между двумя своими серверами - то и практически вечно.

Zircool
10.09.2008, 21:31
Опять вопросик, то был по переименовке а теперь по удалению...
Та же беда есть файл tags.php в котором нахоядтся ссылки вида


<a href="tag_descr_descr.php">Возможности скрипта</a>,
<a href="tag_descr_history.php">История развития скрипта</a>,


Написал вот скрипт удаления ссылки по её имени , но использовал функцию strpos, и теперь если вводится вместо точного имени ссылки к примеру буква "н" то удаляются все ссылки имеющие букву н, какую другую функцию помжно использовать для нахождения совпадения в строке...



<?php
if (isset($_POST['butdel']))
{
$filename=trim($_POST['istagdel']);
$filetags=file('tags.php');
foreach ($filetags as $tag)
{
$pos = strpos($tag, $filename);
if($pos===FALSE) $newfilename[]=$tag;



}
$nameforwr=implode("",$newfilename);
$goodtag = fopen("tags.php", "w");
fwrite($goodtag, $nameforwr);
fclose($goodtag);

echo "<meta http-equiv=Refresh content='0';>";


}
?>

Gifts
10.09.2008, 22:02
Zircool, попробуй так
if (isset($_POST['butdel']))
{
$filename=trim($_POST['istagdel']);
$filetags=preg_replace('#<a href="[^"]*?'.preg_quote($filename,'#').'[^"]*">[^\n]*\n#','',file_get_contents('tags.php'));
$goodtag = fopen("tags.php", "w");
fwrite($goodtag, $filetags);
fclose($goodtag);

echo "<meta http-equiv=Refresh content='0';>";
}

OnArs
11.09.2008, 09:18
Мужики, подскажите где почитать про создание С Нуля ФОрм (Логин / регистрация) их связка с БД?

++Norton++
11.09.2008, 09:45
Профессиональное РНР программирование, 2-е издание.
Ссылки на данную книгу есть в этой:
http://forum.antichat.ru/thread8721.html
теме в первом посте. А вообще почти в каждой книге есть что-то про данный вопрос.

nerezus
11.09.2008, 10:14
UPD: Вообще php - язык пошаговый(Т.Е выполняется пом ере работы скрипта. Тут нельзя зациклить программу как в ассемблере, c++ и других языках) Чо? о_О

Открой для себя for, do while, foreach...

Zircool
11.09.2008, 11:29
Gifts, нет не работает,но спасибо за идею, я сделал немножко по ругому и заработало... если кому интересно


<?
if (isset($_POST['butdel']))
{
$filename=trim($_POST['istagdel']);
$filetags=file('tags.php');
$filetags=preg_replace('#<a href=\"(.*?)\">'. $filename.'</a>,#is',null,$filetags);
foreach($filetags as $filetag )
{
if(strlen($filetag)>8) $files[]=$filetag;// это что бы пустые строки не записывались
}
$files=implode("",$files);
$goodtag = fopen("tags.php", "w");
fwrite($goodtag, $files);
fclose($goodtag);
?>

Zircool
11.09.2008, 12:01
Не могу понять что за ошибка такая, ищу строку с помощью регулярки в массиве, но выводится ошибка


Warning: preg_match() expects parameter 2 to be string, array given in Z:\home\localhost\www\cms\operate_tags.php on line 97


код такой

$filename=trim($_POST['istagdel']);
$filetags=file('tags.php');
preg_match('#<a href=\"(.*?)\">'.$filename.'</a>,#is', $filetags,$res);
echo $res[1];

159932
11.09.2008, 12:16
$filetags должен быть стрингом, а у тебя массив ..
там же написано ! англиским по белому !
==================
если я правильно понял что тебе нужно, то вместо ф-ии file используй file_get_contents

inlanger
11.09.2008, 12:59
Zircool, это значит, функция preg_match() не может понять, какого хрена переменная $filetags - не текст.

NuR
11.09.2008, 13:11
у 159932 яснее написанно

Red_Red1
11.09.2008, 13:18
Можно использовать функцию preg_grep() она будет работать с массивом и вернет массив.

Вот пример

<?
$file_array = file ("fil.txt"); //читаю весь файл в массив
$fl_array = preg_grep("/^(\d+)\b/", $file_array);//Ищем только строки из цыфр
print_r ($fl_array);
?>

файл fil.txt

asdfasdf
0000asdfasdf
11111111
adfasd
2222222
fshdfhdf
afga3333sgdfg
444444
asdfasd55555
6666

Результат работы
Array ( [2] => 11111111 [4] => 2222222 [7] => 444444 [9] => 6666 )

Zircool
11.09.2008, 13:31
Можно использовать и preg_grep() я написал несного по другому т.к. лублю preg_match
А как выцыпить из ссылки вида


<a href="tag_nastr_content.php">Добавление контента</a>,


её url.



$filename=trim($_POST['istagdel']);
$filetags=file('tags.php');
settype($filetags,'string');
preg_match('/\<a href=\"(.*?)\"\>'.$filename.'\<\/a\>,/is',$filetags,$res);
echo $res[1];


этот код не работает.. регулярка неправильная ?

Red_Red1
11.09.2008, 13:41
Как ты массив в строку переводишь О.о?
допиши после
settype($filetags,'string');
строку
echo $filetags;
Что видишь?

159932
11.09.2008, 13:43
preg_match('#<a href="(.+)">'.$filename.'<\/a>#',$filetags,$res);
$result = $res[0];
и сделай вместо file , file_get_contents ..

NuR
11.09.2008, 14:00
может тут уместнее foreach юзать?

Zircool
11.09.2008, 16:00
Сделал используя preg_match и файл открывал file_get_contents.. Только Вот сталкнулся вот с такой проблей. Имя ссылки может быть и с симвлами (,),{,}, но в таком случае проблема с регуляркой preg_match, Т.к. определяет эти символы как спец...

preg_match('#<a href="(.+)">'.$filename.'<\/a>,#', file_get_contents('tags.php'),$res);


Как можно обойти эту ошибку?

159932
11.09.2008, 16:22
Zircool я не понял, где запятая то ?

Zircool
11.09.2008, 16:32
Ошибку не какю не выводит... но функцию удаления скрипт не выполняет....

Есть файл tags.php


<a href="tag_nastr_rss.php">Настройка новостей и RSS (не автонаполнение)</a>,
<a href="tag_nastr_rss2.php">Настройка граббинга RSS (автонаполнение)</a>,




И есть скрипт который по имени ссылки должен её стерать...
Если мы в форму вводим имя этой ссылки "Добавление контента", то скрипт её стирет


<a href="tag_nastr_content.php">Добавление контента</a>,



Но если мы введем имя этой ссылки "Настройка граббинга RSS (автонаполнение)", то скрипт её не стирает


<a href="tag_nastr_rss2.php">Настройка граббинга RSS (автонаполнение)</a>,



Сам код



<?php
if (isset($_POST['butdel']))
{

$filename=trim($_POST['istagdel']);
preg_match('#<a href="(.+)">'.$filename.'<\/a>,#', file_get_contents('tags.php'),$res);
$url=$res[1];
$filelinks=file('linklist.txt');
$filelinks=str_ireplace($url,null,$filelinks);
foreach($filelinks as $filelink)
{
if(strlen($filelink)>5) $goodwr[]=$filelink;
}

$goodwr=implode("",$goodwr);
$goodlinks = fopen("linklist.txt", "w");
fwrite($goodlinks, $goodwr);
fclose($goodlinks);


$filetags=file('tags.php');
$filetags=preg_replace('#<a href=\"(.*?)\">'.$filename.'</a>,#is',null,$filetags);
foreach($filetags as $filetag )
{
if(strlen($filetag)>8) $files[]=$filetag;
}
$files=implode("",$files);
$goodtag = fopen("tags.php", "w");
fwrite($goodtag, $files);
fclose($goodtag);




}
?>


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

nerezus
11.09.2008, 18:34
пока не выполнится первая комманда, вторая не будет выполнятся.. А где нибудь по другому?
Не рассматриваем процессы и потоки.

P.s. А при ООП нельзя даже сказать, что будет сначала выполняться - какой класс и т.д. - все нелинейно.

SSB1981
11.09.2008, 19:07
Zircool, если тока в скобках проблема, то используй str_replace("что менять","на что менять","где менять"), а если что-то типа такого !"№;%:?*()_+/@#$^&*()', то пока не знаю буду думать.

Spyder
11.09.2008, 19:23
пока не выполнится первая комманда, вторая не будет выполнятся..

поржал. А типа в других языках всё выполняется в хаотичном порядке? Кто как хочет так и выполняется, да?

Gifts
11.09.2008, 22:35
Zircool, учим функцию preg_quote

Кубик Рубик
11.09.2008, 23:44
Какая функция нужна, чтобы при вводе значения которого нет в БД через GET - например, name=asasas , выводило сообщение о том, что такое имя в Бд не найдено? Спасибо.

mff
11.09.2008, 23:51
if(!$result){echo"Такое имя в Бд не найдено";}

mff
11.09.2008, 23:51
Подскажите скрипт загрузки картинок как в ворд пресе, нужно чтобы он уменьшал размеры и делал 3 копии, большую, среднюю и малую.

SSB1981
12.09.2008, 00:02
Zircool, учим функцию preg_quote
Или quotemeta(), которая возвращает строку, где перед символами
.\ + * ? [ ^ ] ( $ ) ставится обратный слеш.

emik
12.09.2008, 00:05
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');

if ($s == '' ) { echo 'такого значения нет'};

логика думаю должна быть понятна, но в синтаксисе ошыбки есть

Spyder
12.09.2008, 00:26
if ($s == '' )
жесть, смотри чё mff написал
if (!$s)

mff
12.09.2008, 00:40
if ($s == '' )
жесть, смотри чё mff написал
if (!$s)
Какая разница?

Ponchik
12.09.2008, 00:43
Не не не,
if(!mysql_num_rows($s)) echo 'такого значения нет';
И ваще почему у тебя ; стоит после }

emik
12.09.2008, 01:25
я же написал:
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`'); if ($s == '' ) { echo 'такого значения нет'}; логика думаю должна быть понятна, но в синтаксисе ошыбки есть

Doom123
12.09.2008, 02:14
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = "'.mysql_real_escape_string($_GET['name']).'");

if(!$s) echo 'такого значения нет';

Doom123
12.09.2008, 07:59
.:EnoT:. используй ф-ции imagecreatefrom*

++Norton++
12.09.2008, 10:13
А на счет getimagesize, imagesX и imagesY, если нужно получить высоту и ширину, то скорее всего на какие-то доли секунды быстрее работает первая. А на счет безопасности мне кажется без разницы.

Ponchik
12.09.2008, 16:55
я же написал:
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`'); if ($s == '' ) { echo 'такого значения нет'}; логика думаю должна быть понятна, но в синтаксисе ошыбки есть
Какой ужос...
Дня начала, после mysql_query делай выводи echo mysql_error(); он тебе скажит чё нетак
Но ща я скажу

$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
Нарк? Если юзаеш переменные, надо юзать " а не '

$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
Нарк?! Вот тут синтаксическая ошибка, ковычки друг другу мешают

$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
Нарег?! В `` беруться название таблиц, колонок, БД и всего такого, значения веруться в '' (две одинарные ковычки)

$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
Дураг?! Этоже SQL Inj! Нужна фильтрация!

Короче вариант вот такой, юзай:
$name = mysql_real_escape_string($_GET['name']);
$s = mysql_query("SELECT * FROM `nazva_tablici` where `nazva_stolbca` = '$name'");

if(!$s) echo 'такого значения нет';
Что за бред?!
Яже уже показывал!
if(!mysql_num_rows($s)) echo 'такого значения нет';

Вот пробуй свой способ
$q = mysql_query('SELECT * FROM `mysql`.`user` WHERE 1=2');
if(!$q) echo 'error'; else echo 'ok';
Это запрос ничего не вернёт, но скрипт выведет OK т.к. переменная $s существует и она содержит информацию (пустую, но содержит)
Такчто ни в коем случае нельзя юзать if(!$q)
!$q сработает только если mysql_query вызвало ошибку

[x26]VOLAND
12.09.2008, 18:08
.:EnoT:. используй ф-ции imagecreatefrom*Ага, а ты об оперативной памяти подумал? Данная функция подгружает весь файл в память, затем создаёт на его основе новую картинку...

imagesX() и imagesY() определённо работают быстрее, плюс не забивают память всякой чепухой, как это делает getimagesize()

[x26]VOLAND
12.09.2008, 18:44
Это не пхп, а простой JS...

function openEx(url)
{
w = window.open();
w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
w.document.close();
return false;
}

Заменяешь ссылку на вот это:

<span onclick="return openEx('http://www.ссылка.ru');">www.ссылка.ru</span>

Функция openEx(), открывающая новое окно, не передаёт реферрер...

//Мда, людской ламеризм порой поражает. Тут даже JS знать не надо - тупо заглянуть в сорц....

NuR
12.09.2008, 18:47
на ачате это так

// Открытие ссылки без реферера
function openEx(url)
{
w = window.open();
w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
w.document.close();
return false;
}


<a href="" onclick="return openEx('http://google.com');">ссылка</a>

ну а на пхп чет я не знаю как сделать....

[x26]VOLAND
12.09.2008, 18:52
ну а на пхп чет я не знаю как сделать....header("Location: http://ввв.ога.сом/");

Или можно даже подменить реферер:header("Referer: http://ya.ru/");
header("Location: http://ввв.ога.сом/");
И незабудь die() после header().

Kaimi
12.09.2008, 19:47
И незабудь die() после header().

Это зачем?

Isis
12.09.2008, 19:53
Kaimi, <?php header('Location: true.php'); file_put_contents('test-fails.txt', 'Если этот файл появится на диске, ставить exit необходимо.'); ?> (c)

Chaak
12.09.2008, 19:58
Это зачем?
Понимаешь... Бывает в особенных случаях, после header('Location: '); код продолжает выполнятся. Пример:
<?php
if($password != '1234'){
header('Location: http://google.com/'); // если пасс не подошел...
}
//код админки
?>
Если не переходить по заголовку, то можно увидеть содержимое админки. А die() или exit(), останавливает выполнение скрипта, после редиректа.

Winst0n
12.09.2008, 20:42
помогите, написать такой скрипт...
вот какбы есть такие теги: (mysite.com)

мне надо сделать так, чтобы при вводе в таблицу(или х3 как оно нзываться) ссылки на картинку, ссылка встовлялась между всеми этими тегами([ url=mysite.com]вот сюда![/url] ) ппц немогу обяснить толком... может картинками понятней будет..

http://i023.radikal.ru/0809/19/34f40951b11f.jpg

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

http://s43.radikal.ru/i101/0809/90/883aed7787ed.jpg

и вуаля готовый код, остаеться только копи-паст)

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

FrMn
12.09.2008, 20:53
<form name="addForm" action="asd.php" method="post">
<input type="text" name="link" value="http://link"><input type="submit" name="go" value="Показать">
</form>
<?php
if (isset($_POST['link'])) echo "[ url=mysite.com][ center][ img]".$_POST['link']."[ /img][ /center][ /url]";
?>

Winst0n
12.09.2008, 21:07
спасибише :)

Winst0n
12.09.2008, 21:20
касяк с пробелами... а есле не бб теги а хтмл то он ошибку выдает

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/winston/data/www/домен/asd.php on line 5

вот что у меня с хтмл получилось

<form name="addForm" action="asd.php" method="post">
<input type="text" name="link" value="http://link"><input type="submit" name="go" value="Показать">
</form>
<?php
if (isset($_POST['link'])) echo "<a href="http://mysaite/"><IMG src="http://".$_POST['link'].""></IMG></a>";
?>

nc.STRIEM
12.09.2008, 21:32
с кавычками разберись

<form name="addForm" action="asd.php" method="post">
<input type="text" name="link" value="http://link"><input type="submit" name="go" value="Показать">
</form>
<?php
if (isset($_POST['link']))
echo '<a href="http://mysaite/"><IMG src="http://'.urlencode($_POST['link']).'"></IMG></a>';
?>

Ponchik
12.09.2008, 22:06
Мне страшно Х_Х
Юзайте блин эдиторы с подсветкой синтаксиса (zend studio например)
Если надо вывести " то echo """; естествено не сработает =\ Надо экранировать
echo "\"";
Хоть 1 книгу прочитайте млин...
nc.STRIEM, 2-3 строки кода и те дырявые, на твоём скрипте прокатит фокус с массивом, urlencode не поддерживает массивы, а это раскрытие пути, а это уязвимость :rolleyes:

Winst0n
12.09.2008, 22:13
nc.STRIEM, так он показывает картинку сразу... а не код.

Ponchik
12.09.2008, 22:16
Winst0n, пропусти через htmlspecialchars()
И кстате img должен быть border=0 для IE
вот...
<form name="addForm" method="post">
<input type="text" name="link" value="http://link"><input type="submit" name="go" value="Показать">
</form>
<?php
$link = strval($_POST['link']);
if ($link)
echo htmlspecialchars("<a href=\"http://mysaite/\"><IMG src=\"$link\" border=0></IMG></a>");
?>

Winst0n
12.09.2008, 22:20
я на той странице писал что вапше незнаю пхп :( знаю только как двиг устоновить на сайт ))

PHPoozy
12.09.2008, 22:20
и addslashes(1) & trim(1) и все будет норм.

Winst0n
12.09.2008, 22:22
Ponchik, спс :)

PHPoozy
12.09.2008, 22:23
Черчель входные параметры надо фильтрировать!

Ponchik
12.09.2008, 22:24
и addslashes(1)
Ты чё наркоман?! Тут наоборот stripslashes надо, но я хз квлючено там экранирование или нет поэтому пусть сам думает

addslashes() нужно максимум для MySQL и то при некорректной настройке кодировки эта функция тебя не спасёт никак, поэтому нужен mysql_real_escape_string() она подстраивается под кодировку, но тут это вобще ненадо

PHPoozy
12.09.2008, 22:28
Ты чё наркоман?! Тут наоборот stripslashes надо, но я хз квлючено там экранирование или нет поэтому пусть сам думает

да забыл после этой функции stripslashes_deep! ты поправил меня! я норкаман)))

ps: надо через if else замутить!

Winst0n
12.09.2008, 22:29
а можно такуюжи штуку, на видео ?!

<br><center><embed type="application/x-shockwave-flash" src="http://мой сайт/player/video.swf" style="" id="player1" name="player1" quality="high" allowfullscreen="true" flashvars="height=480&amp;width=620&amp;displayheight=480&amp;file=http://video.mail.ru/ссылка на видео.flv&amp;image=http://мой сайт/player/img.jpg&amp;logo=&amp;backcolor=0x333333&amp;frontcolor=0xCCCC CC&amp;lightcolor=0xFFFFFF&amp;volume=100" height="480" width="620"><div align="center"></div></center>

http://video.mail.ru/ссылка на видео.flv - вот этот линк надобудет вводить, заместо линка на картинку... плз :)

PHPoozy
12.09.2008, 22:31
черчель ты сначала выучи пхп. ладно

Ponchik
12.09.2008, 22:32
Winst0n, ты путаеш .swf и .flv
.swf - это флеш, на нём пишут плеер
.flv - видео ролик, без преера он работать небудет, такчто учи flash, пиши свой плеер и будет всё гуд

И ваще... Ради такой фигни сервер подгружать... Юзай JS
<script>
function show() {
link = document.getElementById('link').value;
document.getElementById('html').innerHTML = '&lt;a href=&quot;http://mysaite/&quot;&gt;&lt;IMG src=&quot;'+link+'&quot; border=0&gt;&lt;/IMG&gt;&lt;/a&gt;';
}
</script>
<input type="text" name="link" value="http://link">
<input type="button" value="Шмяк!" onclick="show()">
<div name="html"></div>

Winst0n
12.09.2008, 23:34
почему... я непутаю свф и флв... там идет ссылка именно на флв, потому что плеер так написан...

<br><center><embed type="application/x-shockwave-flash" src="http://мой сайт_путь к плееру.свф/player/video.swf" style="" id="player1" name="player1" quality="high" allowfullscreen="true" flashvars="height=480&amp;width=620&amp;displayheight=480&amp;file=http://путь к видео.flv&amp;image=http://мой сайт/player/img.jpg&amp;logo=&amp;backcolor=0x333333&amp;frontcolor=0xCCCC CC&amp;lightcolor=0xFFFFFF&amp;volume=100" height="480" width="620"><div align="center"></div></center>

жму "Шмяк!" и нечего непроисходит ) ну с картинками я разобрался... надо теперь сделать типо как с картинками, только с линком к видео... надо учить пхп ) ато что мне надо понять некто неможеть(или нехочит)))

Ponchik
13.09.2008, 00:04
Блин, тебе всё показали и разжевали как и чё сделать, бери делай, ато через неделю мы всем ачатом тебе уже готовый сайт такими темпами напишем
Насчёт шмяка - всё работает, это у тебя там руки кривые наверняка :rolleyes:
>надо учить пхп
А как ты хотел?! Не учить и знать Php?! Ану марш в гугл книги качать!

Zircool
13.09.2008, 00:32
Вопрос такой, пока не смог найти на него ответа.... Есть файл editor_otver.php его содержимое

<html>
<head><link rel="STYLESHEET" type="text/css" href="editor_ds.css"></head>
<body>

<form action=obr_kol.php method="post">
<table width="100%" cellpadding="3" cellspacing="1" border="0" bgcolor="#000000">
<tr>
<td bgcolor="#aaaaaa" valign="top" colspan="2" align="center"><h2>НАСТРОЙКА КОЛИЧЕСТВА ОТВЕТОВ</h2></td>
</tr>
<tr>
<td bgcolor="#dddddd" valign="top">Укажите вариант ответа.</td>
<td bgcolor="#dddddd" valign="top"><input type="Text" size="60" value="" name="0"\></td>
</tr><tr>
<td bgcolor="#dddddd" valign="top">Укажите вариант ответа.</td>
<td bgcolor="#dddddd" valign="top"><input type="Text" size="60" value="" name="1"\></td>
</tr>
<tr>
<td bgcolor="#dddddd" valign="top"></td>
<td bgcolor="#dddddd" valign="top"><input type="Submit" name="sub" value="Сохранить"></td>
</tr>
</table>
</form>
</body>
</html>




Надо получить значения параметров, но если бы эта страница была статической то $_POST['0'], $_POST['1'], $_POST['2'], и мы получаем все нужные нам значения параметров, но проблема в том что страница динамическая, и количество строк в таблице может изменяться и имена так-же могут изменяться от 0 и до бесконечности.. та как выйти из этого положения? есть у кого-нибудь идеи?

Fuckel
13.09.2008, 00:56
у инпута такое использование:
<input type="Text" size="60" value="" name="1" />
как альтернатива, можно использовать массив $a[1],$a[2], получение значений параметров не составит труда.
если названия переменных принимают только числовые значения и названия увеличиваются как n+1, можно пройтись так:

$boo=TRUE; $i=1;
while ($boo==TRUE) {
if (isset($_GET[$i])) {
echo $_GET[$i].'<br>';
$i++;
} else $boo=FALSE;
}

Buffalon
13.09.2008, 01:30
Вопрос такой, пока не смог найти на него ответа.... Есть файл editor_otver.php его содержимое


Надо получить значения параметров, но если бы эта страница была статической то $_POST['0'], $_POST['1'], $_POST['2'], и мы получаем все нужные нам значения параметров, но проблема в том что страница динамическая, и количество строк в таблице может изменяться и имена так-же могут изменяться от 0 и до бесконечности.. та как выйти из этого положения? есть у кого-нибудь идеи?
while(!feof($text)){echo 'мы работаем';}

Zircool
13.09.2008, 02:37
Ок.. спасибо..разобрался... еще один маленький вопросик, какой функцией лучше открывать объемные файлы (файл примерно 500 мегов); file_get_contents, file?

159932
13.09.2008, 02:48
file_get_contents
ибо file - это массив, соответственно больше данных ..
не забудь в php.ini поменять максимальный размер памяти для скрипта ..
а то чтото я сомневаюсь, что твой скриптик поглотит 500м :D
да и тебе что, больше делать нечего чем работать с такими файлами то !?

fopen ?

GreenBear
13.09.2008, 02:52
Ок.. спасибо..разобрался... еще один маленький вопросик, какой функцией лучше открывать объемные файлы (файл примерно 500 мегов); file_get_contents, file?
за раз ? ты наркоман ?

159932
13.09.2008, 02:56
за раз ? ты наркоман ?
ну почему он наркоман ?
можт просто извращенец или апач тестит :D

Ponchik
13.09.2008, 10:55
Да ну... Это ну скажем на компе максимум 8ГБ оперативки, это 16 раз можно подгрузить файл, берём хоть InetCrack и помылаем запросы (в конце концов можно с друзьями это проделать) и комп умрёт (хз что при забитии оперативки происходит, но наверняка чёто ужнастное)

Ponchik
13.09.2008, 12:47
у инпута такое использование:
<input type="Text" size="60" value="" name="1" />
как альтернатива, можно использовать массив $a[1],$a[2], получение значений параметров не составит труда.
если названия переменных принимают только числовые значения и названия увеличиваются как n+1, можно пройтись так:

$boo=TRUE; $i=1;
while ($boo==TRUE) {
if (isset($_GET[$i])) {
echo $_GET[$i].'<br>';
$i++;
} else $boo=FALSE;
}

Вот я непонял твой PHP код, это что за бред О_О Чел пытается выучить PHP а ты его чёрт знает чему учиш, вот изза таких туевы хучи сайтов с SQL Inj и PHP Inj да ещё и незапароленую админку думаю можеш написать
Вот так надо
<html>
<head><link rel="STYLESHEET" type="text/css" href="editor_ds.css"></head>
<body>

<? if(!$_POST['sub']) { ?>
<form action=del.php method="post">
<table width="100%" cellpadding="3" cellspacing="1" border="0" bgcolor="#000000">
<tr>
<td bgcolor="#aaaaaa" valign="top" colspan="2" align="center"><h2>НАСТРОЙКА КОЛИЧЕСТВА ОТВЕТОВ</h2></td>
</tr>
<?php
$c = intval($_GET['c']);
if($c>50 || $c<1) $c = 1;
for($i=0;$i<$c;$i++) {
echo '<tr>
<td bgcolor="#dddddd" valign="top">Укажите вариант ответа.</td>
<td bgcolor="#dddddd" valign="top"><input type="Text" size="60" name="answer[]"\></td>
</tr>';
}
?>
<tr>
<td bgcolor="#dddddd" valign="top">Вариантов: <input type="text" size="2" name="c" value="<?=$c?>"> <input type="button" value="Применить" onclick="document.location.href='?c='+ document.getElementById('c').value"></td>
<td bgcolor="#dddddd" valign="top"><input type="Submit" name="sub" value="Сохранить"></td>
</tr>
</table>
<? }else{
foreach ($_POST['answer'] as $number=>$answer) {
echo ($number+1).") $answer<br>"; #Тута обработка, чё хош то и делай
}
} ?>
</form>
</body>
</html>
P.S. Э, Егорыч, хватит баловацо, посты сносить :rolleyes:

Doom123
13.09.2008, 13:10
159932 Чтение файла по кусочку нынче не в моде?

Zircool
13.09.2008, 17:19
Ещё один вопрос, думал, думал но че-то никакие идеи не приходят в голову..
Есть файл text.txt вида....


парам пам пам
вот оно
всем присет
ачат лучший
и т.д.


крипт должен разбивать файл text.txt на множество файлов, и каждый файл должен иметь определенное количество строк, общее для всех. к примеру указал ты 5 строк, то скрипт разбивает общий текст из файла text.txt на n-ое количество файлов, в каждом файле по 5 строк... Думал как это реализовать проблем то нету как копировать скажем первые 5 строк и создать файл


$maxstrok=5;
$text=file('text.txt');
for($i=0;$i<$maxstrok;$i++)
{
$textforfile[]=$text[$i];
}
$textforfile=implode("",$textforfile);
$list = fopen("1.txt", "a+");
fwrite($list, $textforfile;
fclose($list);



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

BlackSun
13.09.2008, 17:41
Как вариант:

$file = file('you_file.txt');
$max = 5;
for ($i = 0; $i < count($file); $i+$max)
{
$file2 = fopen($i.'-'.$i+$max.'.txt', 'a');
for ($j = 0; $j < $max; $j++)
{
fputs($file2, $file[$i+$j]);
}
fclose($file2);
}

NuR
14.09.2008, 15:40
конкретнее

Zircool
14.09.2008, 16:09
UnPazz,


<html>
<title>Cuter</title>
<body>
<form method="post">
Url:<input type="text" name="url"> <br>
Имя файла:<input type="text" name="name"> <br>
<input type="submit" name="sub" value=" Сохранить " />
</form>
</body>
</html>
<?
if(isset($_POST['sub']))
{
$text=file_get_contents(trim($_POST['url']));
$good = fopen(trim($_POST['name']).".txt", "w");
fwrite($good,$file_all_urls);
fclose($good);

echo "Файл".$_POST['name'].".txt"." успешно сохранен.";
}
?>

OnArs
14.09.2008, 16:51
Мб не туда пишу - нужен миниатюрный flash плеер для прикрутки к простенькому php скрипту.

Самый лучший вариант был бы плеер как вКонтакте, но я Хз где взять...

p.s. за плюасми не постаю...

[x26]VOLAND
14.09.2008, 16:53
и он скачивает её на жесткий диск как полноценный php файл.как полноценный php файл ты его не сохранишь, так как php-скрипты это server-parsed сценарии. ты сможешь скачать лишь сгенерированную html-страницу...

Chaak
14.09.2008, 17:02
подскажите как на php написать ?
на входе : http адрес на страницу
на выходе : файл сохраняется на pc.

добавлено :
указываем скрипту, например, адрес этой страницы
http://forum.antichat.ru/editpost.php?do=editpost&p=862381
и он скачивает её на жесткий диск как полноценный php файл.
Еще один думает что php это дизайн.

geforce
14.09.2008, 17:32
Привет! Всем я новичёк!
Поскажите пожалуйста есть 3 объекта два поля ввода и кнопка
(пример: А-поле B-поле С-кнопка)
есть ещё три файла index.php prog.php и sher.txt
в index находятся эти три объекта. а в prog выполняется программа которую я хочу написать! Её суть состоит в копирвании ведёных даных поля A и B при нажатии кнопки С в файл sher.txt. Как это зделать?

И если не трудно в примере? Если есть у гоко такое просьба дать сылочку!

Chaak
14.09.2008, 17:37
Привет! Всем я новичёк!
Поскажите пожалуйста есть 3 объекта два поля ввода и кнопка
(пример: А-поле B-поле С-кнопка)
есть ещё три файла index.php prog.php и sher.txt
в index находятся эти три объекта. а в prog выполняется программа которую я хочу написать! Её суть состоит в копирвании ведёных даных поля A и B при нажатии кнопки С в файл sher.txt. Как это зделать?

И если не трудно в примере? Если есть у гоко такое просьба дать сылочку!
<form action='prog.php'>
кнопки с именами a и b и кнопка с именем c
</form>

prog.php:
<?php
if(isset($_POST['c'])){
file_put_contents('sher.txt', $_POST['a'].':'.$_POST['b']);
header('Location: index.php');
}
?>

NuR
14.09.2008, 17:43
prog.php


<?php

if(isset($_POST["a"])&& isset($_POST["b"]))
{
$fh=fopen("sher.txt","a");
fputs($fh,"a=".$_POST["a"].",b=".$_POST["b"]);
fclose($fh);
header('Location: index.php');
}
?>



index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="-=NuR=-" />

<title>Untitled 2</title>
</head>

<body>

<form action="prog.php" method="post" enctype="multipart/form-data">
<input type="text" value="A" name="a" />
<br />
<input type="text" value="B" name="b" />
<br />
<input type="submit" value="Сохранить" />
</form>

</body>
</html>

geforce
14.09.2008, 18:21
prog.php


<?php

if(isset($_POST["a"])&& isset($_POST["b"]))
{
$fh=fopen("sher.txt","a");
fputs($fh,"a=".$_POST["a"].",b=".$_POST["b"]);
fclose($fh);
header('Location: index.php');
}
?>



index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="-=NuR=-" />

<title>Untitled 2</title>
</head>

<body>

<form action="prog.php" method="post" enctype="multipart/form-data">
<input type="text" value="A" name="a" />
<br />
<input type="text" value="B" name="b" />
<br />
<input type="submit" value="Сохранить" />
</form>

</body>
</html>



А как ещё зделать чтоб при нажатии ещё перекидывало на след страницу к примеру autor.php ???

NuR
14.09.2008, 18:26
в prog.php header('Location: index.php'); замени header('Location: autor.php');

geforce
14.09.2008, 20:42
в prog.php header('Location: index.php'); замени header('Location: autor.php');

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

NuR
14.09.2008, 21:08
fputs($fh,"a=".$_POST["a"].",b=".$_POST["b"]."\n");

159932
14.09.2008, 21:31
если для вин - то \r\n

geforce
14.09.2008, 22:26
fputs($fh,"a=".$_POST["a"].",b=".$_POST["b"]."\n");

Не работает!

И ещё врпрос ка зделать чтоб в условии то что в prog.php было иначе идти на строницу error.php тоесть если поля не заполнены?

scrat
14.09.2008, 22:49
Не работает!

И ещё врпрос ка зделать чтоб в условии то что в prog.php было иначе идти на строницу error.php тоесть если поля не заполнены?
if/else.Иди ка ты учи PHP чувак. php.net тебе в помощь.А то это уж совсем глупые вопросы.

Zircool
14.09.2008, 22:57
как определить Ip домена? с помощью какой функции?

NuR
14.09.2008, 23:00
gethostbyname
(PHP 4, PHP 5)

gethostbyname — Get the IP address corresponding to a given Internet host name


курим доку

geforce
14.09.2008, 23:01
if/else.Иди ка ты учи PHP чувак. php.net тебе в помощь.А то это уж совсем глупые вопросы.

Во первых кто ещё из нас глупый! То что if и else я и без тебя знаю пред идущий пост для начала надо прочитать мистер гениййй!

Вопрос состои вот вчём есть код(условие)

<?php

if(isset($_POST["a"])&& isset($_POST["b"]))
{
$fh=fopen("mail.txt","a");
fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n");
fclose($fh);
header('Location: error.php');
}
?>

его надо дописать! Что типа else поля а и b не заполнены идти на строницу error1.php!??? как это зделать?

BlackSun
14.09.2008, 23:02
empty, strlen выбирай

NuR
14.09.2008, 23:07
гифорс, у тя мозг вообще имееться? читать умеешь? если да да то читай что тебе пишут.
http://ru2.php.net/manual/en/control-structures.else.php

emik
14.09.2008, 23:45
header - это заголовок. перед ним не должно быть никакого вывода. никаких там echo, print и.т.д.

Для этого нужно использовать буферизацию вывода ob_start.
При этом информация выводится не на экран, а в переменную.

_http://www.softtime.ru/dic/id_dic=302&id_group=12

_http://us3.php.net/ob_start

NuR
14.09.2008, 23:50
emik немного не втему ;) Но тоже будет полезно почитать=)

emik
14.09.2008, 23:54
NuR єто почему же не в тему? да согласен на страничках нету реального примера, а имено буферизация, а потом переадресация. Но думаю одну строчку можно дописать самому если прочитать изложеное

Nek1t
15.09.2008, 00:02
Кто может составить регулярку? :)

Есть такое:
<a href="http://www.123.ru/" class="res-1-lnk" target="_blank" onmouseover="return omff('http://www.123.ru/')" onmouseout="omff()">

А нужно получить такое:

http://www.123.ru/

Какой регуляркой такое можно сделать? :confused:

NuR
15.09.2008, 00:18
preg_match("/\<a href=\"(.*)\" class=/",$str,$matches);
вот так

NuR
15.09.2008, 00:19
NuR єто почему же не в тему? да согласен на страничках нету реального примера, а имено буферизация, а потом переадресация. Но думаю одну строчку можно дописать самому если прочитать изложеное
человек не знает как if/else организовать а ты тут ему про буферизацию и тому подобное кидаешь доку=)

Nek1t
15.09.2008, 00:26
NuR
Ммм, не работает.
Я наверное не все написал, выглядит изначально так:

<h2 class="res_list_1" dir="ltr"><a href="http://123/" class="res-1-lnk" target="_blank" onmouseover="return omff('http://123/')" onmouseout="omff()">

NuR
15.09.2008, 00:29
2 пробело удалил ачат с моей регулярки вот и не пашет=) вот так тогда
preg_match("/\<a href=\"(.*)\"\040\040class=/",$str,$matches);

Isis
15.09.2008, 10:33
<?php
$str = '<h2 class="res_list_1" dir="ltr"><a href="http://123/" class="res-1-lnk" target="_blank" onmouseover="return omff(\'http://123/\')" onmouseout="omff()">';
preg_match('#<a href=\"(.*)\".*?class=#',$str,$matches);
echo $matches[1];
?>

mff
15.09.2008, 10:33
Нужно продлить время жизни куки на php...
Как лучше сделать:
Запсать в .htaccess
php_value session.gc_maxlifetime 10800
php_value session.cookie_lifetime 10800
или перед стартом сессии?
session_set_cookie_params(10800);
Спасибо! :)

DDoSька
15.09.2008, 12:02
впринципе,мне кажеться лучше второе,смотриться правильнее...

Chaak
15.09.2008, 12:18
впринципе,мне кажеться лучше второе,смотриться правильнее...
зато первое быстрее

nerezus
15.09.2008, 14:55
О боже... первое у него быстрее...
Еще скажи, что "$var1 $var2" не юзаешь...

Способы абсолютно равносильные.

o_OBallers
15.09.2008, 15:24
AJAX, вывод во время выполнения.

Есть скрипт, который проверяет заняты домены или нет должен выводить список незарегистрированных доменов,

Работает нормально, только когда доменов много, приходится ждать в безответности.
Как сделать, чтобы строка echo "$target<br>"; выводилась сразу а не после окончания работы скрипта.

Заранее благодарен.

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

Сам скрипт


<?
require_once("whois.php");
$h = fopen("domain.txt", "r");
while (!feof ($h))
{
set_time_limit(30);
$domain = fgets($h);
$target = $domain;
$whois=new whois();
$whois->zonelookup($target);
if($whois->ERROR==0)
{
if(is_array($whois->RAWINFO) && count($whois->RAWINFO)>7 && $whois->FOUND==1)
{
sleep(1);
}
else
{
echo "$target<br>";
}
}
}
fclose($h);
?>


whois.php

<?php

class whois {

var $port = 43;
var $MAXLEN = 1024;

var $QUERY_TYPE = "domain";
var $DEFAULT_SERVER = "whois.crsnic.net";

var $MAX_RETRIES = 3;
var $SLEEP_VAL = 1;
var $RETRY = 0;

var $FOUND = 0;
var $ERROR = 0;
var $DATA_MIN = 8;

var $DATA_COUNT = 0;


var $ORGANIZATION;
var $ORG_HANDLE;
var $ORG_ADDRESS;
var $DOMAIN_NAME;
var $DOMAIN_STATUS;
var $ADMIN;
var $TECH;
var $ZONE;
var $BILLING;
var $UPDATED;
var $CREATED;
var $DNS_NAME=array();
var $HANDLES;

var $IP="";

var $SERVER = array(
"com"=>"whois.crsnic.net",
"net"=>"whois.crsnic.net",
"edu"=>"whois.educause.net",
"org"=>"whois.publicinterestregistry.net",
"arpa"=>"whois.arin.net",
"ripe"=>"whois.ripe.net",
"mil"=>"whois.nic.mil",
"coop"=>"whois.nic.coop",
"museum"=>"whois.museum",
"biz"=>"whois.neulevel.biz",
"info"=>"whois.afilias.net",
"name"=>"whois.nic.name",
"gov"=>"whois.nic.gov",
"aero"=>"whois.information.aero",
"ns"=>"whois.internic.net",
"ip"=>"whois.ripe.net",
"ad"=>"whois.ripe.net",
"al"=>"whois.ripe.net",
"am"=>"whois.ripe.net",
"as"=>"whois.gdns.net",
"at"=>"whois.nic.at",
"au"=>"box2.aunic.net",
"az"=>"whois.ripe.net",
"ba"=>"whois.ripe.net",
"be"=>"whois.dns.be",
"bg"=>"whois.ripe.net",
"br"=>"whois.nic.br",
"by"=>"whois.ripe.net",
"ca"=>"eider.cira.ca",
"cc"=>"whois.nic.cc",
"ch"=>"domex.switch.ch",
"ck"=>"whois.ck-nic.org.ck",
"cl"=>"nic.cl",
"cn"=>"whois.cnnic.net.cn",
"cx"=>"whois.nic.cx",
"cy"=>"whois.ripe.net",
"cz"=>"dc1.eunet.cz",
"de"=>"whois.denic.de",
"dk"=>"whois.dk-hostmaster.dk",
"do"=>"ns.nic.do",
"dz"=>"whois.ripe.net",
"ee"=>"whois.ripe.net",
"eg"=>"whois.ripe.net",
"es"=>"whois.ripe.net",
"fi"=>"whois.ripe.net",
"fo"=>"whois.ripe.net",
"fr"=>"winter.nic.fr",
"ga"=>"whois.ripe.net",
"gb"=>"whois.ripe.net",
"ge"=>"whois.ripe.net",
"gl"=>"whois.ripe.net",
"gm"=>"whois.ripe.net",
"gr"=>"whois.ripe.net",
"gs"=>"whois.adamsnames.tc",
"hk"=>"whois.hkdnr.net.hk",
"hr"=>"whois.ripe.net",
"hu"=>"whois.nic.hu",
"id"=>"muara.idnic.net.id",
"ie"=>"whois.domainregistry.ie",
"il"=>"whois.isoc.org.il",
"in"=>"whois.ncst.ernet.in",
"is"=>"horus.isnic.is",
"it"=>"whois.nic.it",
"jo"=>"whois.ripe.net",
"jp"=>"whois.nic.ad.jp",
"kg"=>"whois.domain.kg",
"kh"=>"whois.nic.net.kh",
"kr"=>"whois.krnic.net",
"la"=>"whois.nic.la",
"li"=>"domex.switch.ch",
"lk"=>"arisen.nic.lk",
"lt"=>"ns.litnet.lt",
"lu"=>"whois.dns.lu",
"lv"=>"whois.ripe.net",
"ma"=>"whois.ripe.net",
"mc"=>"whois.ripe.net",
"md"=>"whois.ripe.net",
"mm"=>"whois.nic.mm",
"ms"=>"whois.adamsnames.tc",
"mt"=>"whois.ripe.net",
"mx"=>"whois.nic.mx",
"nl"=>"whois.domain-registry.nl",
"no"=>"ask.norid.no",
"nu"=>"whois.worldnames.net",
"nz"=>"akl-iis.domainz.net.nz",
"pl"=>"nazgul.nask.waw.pl",
"pt"=>"whois.ripe.net",
"ro"=>"whois.rotld.ro",
"ru"=>"whois.ripn.net",
"se"=>"ear.nic-se.se",
"sg"=>"qs.nic.net.sg",
"sh"=>"whois.nic.sh",
"si"=>"whois.arnes.si",
"sk"=>"whois.ripe.net",
"sm"=>"whois.ripe.net",
"st"=>"whois.nic.st",
"su"=>"whois.ripn.net",
"tc"=>"whois.adamsnames.tc",
"tf"=>"whois.adamsnames.tc",
"th"=>"whois.thnic.net",
"tj"=>"whois.nic.tj",
"tn"=>"whois.ripe.net",
"to"=>"whois.tonic.to",
"tr"=>"whois.ripe.net",
"tw"=>"whois.twnic.net",
"tv"=>"whois.nic.tv",
"ua"=>"whois.net.ua",
"uk"=>"whois.nic.uk",
"us"=>"whois.nic.us",
"va"=>"whois.ripe.net",
"vg"=>"whois.adamsnames.tc",
"ws"=>"whois.worldsite.ws",
"yu"=>"whois.ripe.net",
"za"=>"apies.frd.ac.za",
"xn--p1ag"=>"ru.whois.i-dns.net",
"xn--p1ag"=>"ru.whois.i-dns.net",
"xn--j1ae"=>"whois.i-dns.net",
"xn--e1ap"=>"whois.i-dns.net",
"xn--c1av"=>"whois.i-dns.net",
"net.ru"=>"whois.ripn.net",
"org.ru"=>"whois.ripn.net",
"pp.ru"=>"whois.ripn.net",
"spb.ru"=>"whois.relcom.ru",
"msk.ru"=>"whois.relcom.ru",
"ru.net"=>"whois.relcom.ru",
"yes.ru"=>"whois.regtime.net",
"uk.com"=>"whois.centralnic.com",
"uk.net"=>"whois.centralnic.com",
"gb.com"=>"whois.centralnic.com",
"gb.net"=>"whois.centralnic.com",
"eu.com"=>"whois.centralnic.com"
);
var $TLD;
var $RAWINFO;
var $DNSINFO;

function connect ($server)
{
while($this->RETRY <= $this->MAX_RETRIES)
{
$ptr=fsockopen($server, $this->port);
if($ptr>0)
{
$this->ERROR=0;
return($ptr);
}else
{
$this->ERROR++;
$this->RETRY++;
sleep($this->SLEEP_VAL);
}
}
}


function rawlookup ($query)
{
$array=array();
$this->FOUND=1;
$query=strtolower(trim($query));
if(strlen($query)<=2)
{
$this->ERROR=1;
return($array);
}

$server=$this->DEFAULT_SERVER;

if($this->QUERY_TYPE=="domain")
{
ereg(".+\.(.+)\.{0,1}",$query,$backrefs);
if(isset($backrefs[1]) && strlen($backrefs[1])>0 && isset($this->SERVER[$backrefs[1]]))
{
$this->TLD=$backrefs[1];
$server=$this->SERVER[$this->TLD];
}

}
$ptr=$this->connect($server);
if($ptr)
{
$query .= "\n";
fputs($ptr, $query);
$i=0;
while(!feof($ptr))
{
$array[$i]=fgets($ptr,$this->MAXLEN);
$this->DATA_COUNT+=strlen(trim($array[$i]));
if(eregi("No match for", $array[$i]) || eregi("Not found", $array[$i]) || eregi("No entries found for", $array[$i]))
{
$this->FOUND=0;
break;
}
if(eregi("WHOIS database is down",$array[$i]) || eregi("Please wait a while and try again",$array[$i]))
{
$this->ERROR=1;
$this->FOUND=0;
break;
}
$i++;
}
fclose($ptr);
if($this->DATA_COUNT>$this->DATA_MIN && $this->ERROR==0 && $this->FOUND==1)
{
return($array);
}
}

return (array());
}



function parsezone ($array)
{
$result=array();
if(!isset($array) || !is_array($array) || count($array)<=3)
{
$this->FOUND=0;
return $result;
}
$cnt=count($array);
$rescnt=0;
$i=0;
$isinfo=true;
while($i<$cnt)
{
if(!$isinfo)
{
$str=trim($array[$i]);
$result[$rescnt]=$str;

if(eregi("NAME SERVER", $str) || eregi("NSERVER", $str))
{
$str=trim(substr($str, strpos($str, ":")+1));
if($pos=strpos($str, " "))
{
$str=substr($str, 0, $pos);
}
if(substr($str, -1)==".")
{
$str=substr($str, 0, -1);
}
$this->DNS_NAME[]=strtolower($str);
}
$rescnt++;
}
if(trim($array[$i])=="" && $isinfo)
{
$isinfo=false;
}
$i++;
}
return $result;
}

function zonelookup ($query)
{
$query=trim($query);
$this->RAWINFO=$this->rawlookup($query);
if($this->FOUND)
{
$this->RAWINFO=$this->parsezone($this->RAWINFO);
}
if($this->FOUND==0)
{
return;
}
//if($this->dns_lookup($query))
//{
//$this->IP=gethostbyname($query);
//$this->build_dns($query);
//}
}

function build_dns($query)
{
$cnt=0;
// $temp=dns_get_record($query, "NS");
foreach($this->DNS_NAME AS $dns)
{
$this->DNSINFO[$cnt]="NS: ".$dns."\tinternet address = ".gethostbyname($dns);
$cnt++;
}
if(getmxrr($query, $temp))
{
foreach($temp AS $dns)
{
$this->DNSINFO[$cnt]="MX: ".$dns."\tinternet address = ".gethostbyname($dns);
$cnt++;
}
}

}
//function dns_lookup($query)
//{
//return checkdnsrr($query,"MX");
//}


};

?>

metaN™®
15.09.2008, 16:27
подскажите плз, я тут небольшую пагу делаю нужно сделать так чтобы дать допустим 3и линка, и когда юзер нажимает на какой нибуть, то открывалось небольшое окошечко, а в нем информация моя.
Большое спасибо заранее!
Желательно если есть на html либо на пхп.

DDoSька
15.09.2008, 17:02
подскажите плз, я тут небольшую пагу делаю нужно сделать так чтобы дать допустим 3и линка, и когда юзер нажимает на какой нибуть, то открывалось небольшое окошечко, а в нем информация моя.
Большое спасибо заранее!
Желательно если есть на html либо на пхп.
Это кажись JS,ну если сложнее то AJAX...

metaN™®
15.09.2008, 17:23
DDoSька ыы, ну если это ява скрипт, то где этот скрипт взять? :D

ufalog
15.09.2008, 17:37
http://ufa-dom.com/thtr.jpg

<body>
<form name="form1" method="post" action="">
<label>
<input name="textfield" type="text" value="№" size="5">
</label>
<label>
<input type="submit" name="Submit" value="Перейти">
</label>
</form>
</body>

1 - есть ссылка постоянная

http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,x/

x=номеру предложения (х изменяецо от 1 до 99999999)

Нужен модуль чтоб подставляеш цифру от 1 до 99999999 и нажимаеш кнопку перейти.

Допустим ввели цифру 1 нажимаеш переход и оказываемся на странице

http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,1/


Или ввели цифру 87 нажимаеш переход и оказываемся на странице

http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,87/

Подскажите код для модуля Joomla (на PHP наверно легче такое осуществлить)

:)

Barttos
15.09.2008, 18:00
header("Location" http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");

Кубик Рубик
15.09.2008, 18:00
Всем привет, скрипт выводит из базы адрес и имя ссылки.

while ($row2=mysql_fetch_array($res)) {
echo "<a href="."index.php?page="."$row2['name']".">"."$row2['name2']"."</a>";
}

Пишет:


Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\serv\www\menu.php on line 24
в чем дело? :confused:
Заранее спасибо!

Doom123
15.09.2008, 18:57
while ($row2=mysql_fetch_array($res))
echo '<a href="index.php?page='.$row2['name'].'">'.$row2['name2'].'</a>';

PandoraBox
15.09.2008, 19:26
//MySQL Options
$mysql_host = "localhost";
$mysql_db_name = "database_name";
$mysql_login = "";
$mysql_password = "";

// MySQL Connect
if (!$db = mysql_connect($mysql_host, $mysql_login, $mysql_password)) {
echo("Could not connect to db."); //
} else {
if (!mysql_select_db($mysql_db_name, $db)) {
echo("Could not select database"); // Невыбрана база
}
}
// MySQL Query
$sql = "SELECT `id` , `name` , `start_date` FROM `xz` ORDER BY `id`"; // Запрос
// Send Query
$res = mysql_query($sql, $db); // Посылка запроса
if (/*$rows_count =*/ @mysql_num_rows($res) > 0) // Кол-во записей в таблице
{
while ($result = mysql_fetch_array($res))
{
$row1 = $result['name'];
$row2 = $result['name2'];
if ($i == $rows_count){
echo("<a href='index.php?page=$row1'>$row2</a>");
} else {
echo("<a href='index.php?page=$row1'>$row2</a><br/>");
}
//$i++;
}
} else {
echo("<p>Нет данных.</p>");
}
// End work
mysql_free_result($res); // Освобождает память от результата запроса
mysql_close($db); // Закрытие соединение.

Doom123
15.09.2008, 19:31
PandoraBox && @mysql_num_rows($result) > 0 что за бред ? оО

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

xxxxxxxxxxxxxxx
16.09.2008, 00:32
начил потехоньку учить ООП и возьник вопрос

$x1 =(int) $_GET ["x1"];$y1 = (int)$_GET ["y1"];
$x2 =(int) $_GET ["x2"];$y2 = (int)$_GET ["y2"];




class VectClass()
{
//--------------косинус угла между векторами---------
function cos_vect(($x1,$y1,$x2,$y2)
{
$exp_x1 = exp($x1,2);
$exp_x2 = exp($x2,2);
$exp_y1 = exp($y1,2);
$exp_y2 = exp($y2,2);
$AB=$x1*$x2+$y1*$y2;
$modul = sqrt(($exp_x1 + $exp_y1)*($exp_x2 + $exp_y2));
$cos = $AB/$modul;
echo "Косинус угла векторов A и B равен $cos ";
}
}

код принемает с формы координаты как мне их передать в клас, а патом сделать так чтоб он выдал мне ответ..

NuR
16.09.2008, 00:40
class VectClass
{
//--------------косинус угла между векторами---------
public function cos_vect($x1,$y1,$x2,$y2)
{
$exp_x1 = exp($x1,2);
$exp_x2 = exp($x2,2);
$exp_y1 = exp($y1,2);
$exp_y2 = exp($y2,2);
$AB=$x1*$x2+$y1*$y2;
$modul = sqrt(($exp_x1 + $exp_y1)*($exp_x2 + $exp_y2));
$cos = $AB/$modul;
echo "Косинус угла векторов A и B равен $cos ";
}
}
$vect= new VectClass();

$vect->cos_vect(90,50,45,52); // я тут хз какие циферки=)


вот так можна

159932
16.09.2008, 00:47
$vert = new VectClass;
$vert->cos_vect($x1,$y1,$x2,$y2);
у себя в коде, тут убери скобку лишную
function cos_vect(($x1,$y1,$x2,$y2)
====================
$vect= new VectClass();() <- это чо такое !?

NuR
16.09.2008, 00:56
$vert = new VectClass;
$vert->cos_vect($x1,$y1,$x2,$y2);
у себя в коде, тут убери скобку лишную
function cos_vect(($x1,$y1,$x2,$y2)
====================
() <- это чо такое !?
а что такова?

[x26]VOLAND
16.09.2008, 01:28
$vect= new VectClass();
Так тоже можно.

UnPazz
16.09.2008, 02:45
подскажите, пожалуйста, почему этот код не сохраняет страницу на хард ?
<html>
<title>Cuter</title>
<body>
<form method="post">
Url:<input type="text" name="url"> <br>
Имя файла:<input type="text" name="name"> <br>
<input type="submit" name="sub" value=" Сохранить " />
</form>
</body>
</html>

<?
if(isset($_POST['sub']))
{
$text=file_get_contents(trim($_POST['url']));
$good = fopen(trim($_POST['name']).".txt", "w");
fwrite($good,$file_all_urls);
fclose($good);

echo "Файл".$_POST['name'].".txt"." успешно сохранен.";
}
?>
по окончании работы, просто создается пустой файл =(

159932
16.09.2008, 02:52
потому что переменная $file_all_urls не определена ..
вместо неё поставь $text, если я правильно понял что тебе нужно :p

NuR
16.09.2008, 02:54
у тебя в файл пишеться $file_all_urls которое не продекларированно. наверно ты хотел в файл писать $text
аля
fwrite($good,$text);

ufalog
16.09.2008, 09:42
<body>
<form name="form1" method="post" action="">
<label>
<input name="textfield" type="text" value="№" size="5">
</label>
<label>
<input type="submit" name="Submit" value="Перейти">
</label>
</form>
</body>

как к кнопке Submit привязать выполнеие действия приведённого ниже?

header("Location" http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");

.:nbd:.
16.09.2008, 09:58
Вынеси
header("Location" http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");
в файл action.php, а <form name="form1" method="post" action="">
замени на <form name="form1" method="post" action="./action.php">

Кстати исправь ошибку в хидере, сделай так header("Location: http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");

ufalog
16.09.2008, 12:16
Вынеси
header("Location" http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");
в файл action.php, а <form name="form1" method="post" action="">
замени на <form name="form1" method="post" action="./action.php">

Кстати исправь ошибку в хидере, сделай так header("Location: http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");

сделал все как сказал

1 создал action.php

с кодом :

<?php header("Location: http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/"); ?>

создал модуль (на html)

<form name="form1" method="post" action="./action.php"> <label> <input name="textfield" type="text" size="5"> </label> <label> <input type="submit" name="Submit" value="Перейти"> </label> </form>

ввожу цифру допустим 3

и попадаю на ссылку

http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,/

то есть цифра 3 не попала в ..... /task,showEO/id,3/

Что непрально?

.:nbd:.
16.09.2008, 13:36
смотри в массив =)

<input name="textfield" type="text" value="№" size="5">

и

$_POST['testfield']

не на что не наводят? =)

froy
16.09.2008, 13:37
Как декодировать файлы закодированные в base64?

NuR
16.09.2008, 13:40
Как декодировать файлы закодированные в base64?
можно вот так=)

file_put_contents("decoded.file",base64_decode(file_get_contents("encodedfile.txt")));
тока на 5 пхп =)

NuR
16.09.2008, 13:42
так на любую версию пхп

$data=base64_decode(file_get_contents("encodedfile.txt"));
$f=fopen("decode.out","w");
fputs($f,$data);
fclose($f);

froy
16.09.2008, 14:04
Вот есть файл index.php: index.php (http://slil.ru/26149843)
просьба написать алгоритм раскодирования, если можно! :rolleyes:

paulzey
16.09.2008, 16:16
Кодирование примитивно. Везде используется base64_decode.
Мотаем в самый конец файла, до выражения $_D=strrev('edoced_46esab');
Сие означает, что будет использоваться функция base64_decode (перевёрнутое название).
Далее, видно, что этой функцией будет распакован маленький отдельный кусочек и будет выполнен. После распаковки видно (код я опущу, любопытный читатель распакует его самостоятельно), что весь распакованный код выполняется командой eval. Я пошёл по простому пути и прямо в php заменил eval на echo.
Получился следующий код:
$s=base64_decode('JF9Y... // тот кусок, который в самом окончании, весь целиком
$s=str_replace("eval", "echo", $s); // заменим одну функцию другой
$_F=__FILE__;$_X='P2lCP... // самый первый кусок кода, идёт целиком
eval($s);
Результат - распечатанный листинг.
// KOOBI R7 - CMS - PORTALSOFTWARE(c) DREAM4(r)

P.S. Ход рассуждений строился так, чтобы любой подготовленный читатель, обладающий интерпретатором, мог самостоятельно повторить чудо распаковки.
В случае затруднений могу дать дополнительную информацию.

xaker-boss
16.09.2008, 16:25
Подскажите какой нужно вставить код в *.php файл чтобы при запуске там было одно поле и одна кнопка, и когда в поле вписываешь '123' (бес ковычек) и нажимаешь на эту кнопку то меня перекидывала на рядом лежащий index4.php ???
Если в поле введут что не будь другое и нажмут на кнопку то он просто выдавал 'Ошибка'

159932
16.09.2008, 16:37
<?
if (isset($_POST['123'])) {
if ($_POST['123'] == 123) header("Location: index4.php");
else {
echo "error";
die;
}
}
?>
<form method="post">
<input type="text" name="123"><br>
<input type="submit">
</form>

DIAgen
16.09.2008, 16:41
Подскажите какой нужно вставить код в *.php файл чтобы при запуске там было одно поле и одна кнопка, и когда в поле вписываешь '123' (бес ковычек) и нажимаешь на эту кнопку то меня перекидывала на рядом лежащий index4.php ???
Если в поле введут что не будь другое и нажмут на кнопку то он просто выдавал 'Ошибка'
Вот держи
<form action="" method="post" enctype="application/x-www-form-urlencoded" name="form1">
Введите код
<label><input type="text" name="code" id="code" /></label><label><input type="submit" value="Вход" /></label>
</form>
<?php
$code_sec = '123';
$code_post = $_POST['code'];
if($code_sec == $code_post) {
header('Location: index4.php');
} else {
echo '<span style="color:#FF0000; font-size:24px">Ошибка</span>';
}
?>