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

Naydav
30.06.2008, 14:31
1) Не в тот раздел
2) Gjтому что высота дивов равна 0

MafiaBoy3
30.06.2008, 14:34
Напиши какойто текст между div

Зачем? А если мне не нужно писать?

Naydav
30.06.2008, 14:39
Зачем? А если мне не нужно писать?
Ну поставь высоту заданную
<div style="height:100px;"/>

Высота дива зависит от высоты контента, если оставить див пустым, только с бекграундом (контента нет), то высота дива естественно тоже равна 0

пс
Высоту дива в процентах нельзя задавать

MafiaBoy3
30.06.2008, 16:27
Мне нужно сделать закругления для элементов.
Есть ли удобная и достойная алтернатива Jqeury для закругления без картинок?

Проблема у меня такая. Я воспользовался Jqeury присоединил к странице его (30кб) +
плагин Jquery.corner (8kб) И вот что я получил: результат-отличный, а страница грузится долго.

Ps помошника ждёт +5

astrologer
30.06.2008, 16:46
http://www.html.it/articoli/niftycube/index.html
А библиотека jQuery, как это ни странно прозвучит, нужна вовсе не для закругления уголков.
Ps помошника ждёт +5Нет уж, спасибо. Тем более, что это тема PHP.

Nek1t
30.06.2008, 23:56
Каким образом можно вытянуть скриптом все [ну или например первые 50 и т.д. ]результаты поиска из гугла?
Ну т.е. имеем резуьтаты из гугла в таком виде:
Кулхацкер — ВикипедияКулхацкер (жарг.) — неологизм, появился и распространился в околокомпьютерной среде в 1990-е годы практически одновременнно с началом широкого употребления ...
ru.wikipedia.org/wiki/Кулхацкер - 20k - Сохранено в кэше - Похожие страницы

КУЛХАЦКЕР : Новая Аналитическая Энциклопедия - источник знаний ...КУЛХАЦКЕРДэвид М. (наст. имя Кальтеншлаг Давид Моисеевич, 1956 - 1998) - первый ХАЦКЕР. Сын эмигрантов из СССР, выехавших на постоянное место жительства в ...
encyclopedia.dekanat.ru/?a=a&b=2947 - 11k - Сохранено в кэше - Похожие страницы

анекдотов.net / фото / Фото-приколы 12[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] ...
anekdotov.net/pic/photo12/index-page-30.html - 17k - Сохранено в кэше - Похожие страницы

Кулхацкер. » Lion Blog. Самые свежие анекдоты, весёлые истории ...Папа, а хакеры хорошо получают? - Хорошо, сынок, лет эдак пятнадцать...
www.lionblog.net.ru/2006/05/30/kulkhacker.html - 64k - Сохранено в кэше - Похожие страницы

кулхацкер - Просмотр профилякулхацкер. Новичок. Возраст не указан лет. Пол не указан. Место жительства не указано ... Другие пользователи не оставили комментарии для кулхацкер. ...
gekto.net/index.php?showuser=4348 - 52k - Сохранено в кэше - Похожие страницы

А надо получить:
ru.wikipedia.org/wiki/Кулхацкер
encyclopedia.dekanat.ru/?a=a&b=2947
anekdotov.net/pic/photo12/index-page-30.html
www.lionblog.net.ru/2006/05/30/kulkhacker.html
gekto.net/index.php?showuser=4348

Как это реализовать в PHP скрипте? :confused:

Naydav
01.07.2008, 01:11
Фраза вида ru.wikipedia.org/wiki/Кулхацкер находиться в тегах
<span class=a>ru.wikipedia.org/wiki/Кулхацкер - 20k - </span>, из них вытааскиваем ссылки + еще пару условий

Просто распарсь полученный текст и выбери все, что между тегами <span class=a>(.*)</span>

Naydav
01.07.2008, 01:18
легко сказано :d
считай построчно инфу + preg_match();

fuya
01.07.2008, 01:21
считай построчно инфу + preg_match();
я понял тя мужик жик-жик

типа...

while(!feof($ans)){ preg_match("|<span class=a>(.*)</span>|i", fread($ans, 1024)), $matches); }

Solker
01.07.2008, 01:36
Naydav, не оптимально. Между этими тегами еще присутствуют <b> </b> и размер страницы. Нафига оно... Если можно вытащить из href=.

считай построчно инфу + preg_match();
Как раз для этого есть preg_match_all()

Nek1t зибирай.

<?php

$file = file_get_contents('http://www.google.com/search?q=murzilka');

$pattern = '#<h2 class=r><a href="([^"]+)" class=l>#i';
preg_match_all($pattern,$file,$matches);

//print_r($matches);

foreach($matches[1] as $link) echo $link.'<br>';

?>

Naydav
01.07.2008, 01:46
Naydav, не оптимально
Я только показал в какую сторону нужно двигаться и, что это не сложно

Piflit
01.07.2008, 01:56
<?php

$file = file_get_contents('http://www.google.com/search?q=murzilka');

$pattern = '#<h2 class=r><a href="([^"]+)" class=l>#i';
preg_match_all($pattern,$file,$matches);

//print_r($matches);

foreach($matches[1] as $link) echo $link.'<br>';

?>
без проксей капча на ~30-40 запросе в зависимости от таймаута

MafiaBoy3
01.07.2008, 10:27
if($config['rating_mode'] == 0)
{

}

Извините я новичок!
Что делает это выражение и что это за конструкция вида $var['']

Piflit
01.07.2008, 10:41
ассоциативный массив

real_kas
01.07.2008, 10:50
Товарищи. Как можно адрес вида: http://www.site.ru/news/index.php?ELEMENT_ID=2470 привести к виду http://www.site.ru/news/2370.php ? т.е. как осуществить ЧПУ в этом случае?

Корвин
01.07.2008, 10:59
тебе нужно передавать ELEMENT_ID=2470 методом POST через форму (невидимую например), и в теге формы прописать action="2370.php", или скорее так action="<?=$element_id?>.php"

real_kas
01.07.2008, 11:10
А методом REWRITE? просто у меня например CMS делает код с "?" а мне нужно без этого. Как через .htaccess преобразовать эти адреса в вид без точки? это как-то возможно?

Корвин
01.07.2008, 11:20
ээээ...не знаю.... но можно залезть в код админки и переписать Get на Post, как я описал в сообщении выше

AlexV
01.07.2008, 11:36
Приветствую Вас!

У меня вопрос:
Подскажите, а как склеить два разных доменных имени: liverus.ru и alexvinet.nx0.ru (это один и тот же сайт)? Причем, нужно, чтоб первый из них стал основным?

Т.к. Тиц у alexvinet.nx0.ru = 10, а у liverus.ru = 0!? Как правильно их склеить!?

Abramovich
01.07.2008, 12:00
Приветствую Вас!

У меня вопрос:
Подскажите, а как склеить два разных доменных имени: liverus.ru и alexvinet.nx0.ru? Причем, нужно, чтоб первый из них стал основным?

Т.к. Тиц у alexvinet.nx0.ru = 10, а у liverus.ru = 0!? Как правильно их склеить!?


Такого не слышал можно тока БД общую можно сделать если у тебя двиг какой-нибудь...

Naydav
01.07.2008, 12:03
Тьху, вначале подумал пр 10 :)

Вообщем в файл .htaccess на сервере добавляем следующие строки(не в основоном)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^old\.example\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.old\.example\.com
RewriteRule ^(.*)$ http://new.example.com/$1 [R=301, L]

Альтернатива:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^new\.example\.com
RewriteRule ^(.*)$ http://new\.example\.com/$1 [R=301, L]

AlexV
01.07.2008, 12:07
RewriteEngine on
RewriteCond %{HTTP_HOST} ^old.example.com [OR]
RewriteCond %{HTTP_HOST} ^www.old.example.com
RewriteRule ^(.*)$ http://new.example.com/$1 [R=301, L]
Т.е. old.example.com - это alexvinet.nx0.ru вписывать!? или как!? Можно поконкретнее именно на моем примере... !?

Naydav
01.07.2008, 12:11
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.alexvinet\.nx0\.ru
RewriteRule ^(.*)$ http://www\.alexvinet\.nx0\.ru/$1 [R=301, L]

Поместить на liverus.ru
Это означает, что при заходе на liverus.ru будет ити 301 редирект на http://www.alexvinet.nx0.ru

Или погоди, тебе нужно чтобы в адресной строке был разный адрес, а контент один? это возможно при использовании 1 базы данных
тогда возникнет ПРОБЛЕМА ДУБЛИРОВАНИЯ КОНТЕНТА
Необходимо выбрать "основной" домен и постоянно перенаправлять в него другие домены, как я показыл выше(если на php header'ами, тоже делать 301)

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

AlexV
01.07.2008, 12:21
при заходе на liverus.ru будет ити 301 редирект на http://alexvinet.nx0.ru
Ну это в смысле для роботов!? А люди будут оставаться также на liverus.ru!? Правильно я понял?!

Naydav
01.07.2008, 12:26
Ну это в смысле для роботов!? А люди будут оставаться также на liverus.ru!? Правильно я понял?!
Нет, это для всех, если это будет только для роботов - это будет уже клоакинг

Термин клоакинг (cloaking) происходит от английского глагола to cloak — маскировать, прикрывать, прятать, скрывать. Клоакинг — это методика отображения роботу поисковой системы оптимизированной страницы, в отличие от страницы, которую увидит обычный пользователь
Является черным методом раскрутки, баниться(песок) довольно быстро (хотя все от ситуации зависит)

AlexV
01.07.2008, 12:27
А люди будут оставаться на ссылке liverus.ru!??

В общем прописал так:
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>

<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.alexvinet\.nx0\.ru
RewriteRule ^(.*)$ http://www\.alexvinet\.nx0\.ru/$1 [R=301, L]
файл находится в корневой папке - я правильно сделал!?

Naydav
01.07.2008, 12:35
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.alexvinet\.nx0\.ru
RewriteRule ^(.*)$ http://www\.alexvinet\.nx0\.ru/$1 [R=301, L]
Просто пропиши вверху и все, без директив <Files "config.php">, ведь к нему не смогут добраться, сразу будет ити редирект, а вот на основном домене нужно оставить <Files "config.php">

Naydav
01.07.2008, 12:43
Чего это там у тебя Internal Server Error ?
Если возникнет 500 ошибка замени
[R=301, L] на [R=301]

AlexV
01.07.2008, 13:20
росто пропиши вверху и все, без директив <Files "config.php">, ведь к нему не смогут добраться, сразу будет ити редирект, а вот на основном домене нужно оставить <Files "config.php">
че то ты меня запутал... так в каком файле именно прописать!? Который в корне лежит!?

У меня всего один хост! alexvinet.nx0.ru - просто к нему прикручено доменное имя liverus.ru

AlexV
01.07.2008, 13:21
Блин, теперь при вводе liverus.ru - он кидает никуда не кидал! А лишь склеить... :(

Naydav
01.07.2008, 13:42
alexvinet.nx0.ru - просто к нему прикручено доменное имя liverus.ru
Что значит прикрученно? alexvinet.nx0.ru - это ведь тоже доменное имя
Просто при выборе второстепенного доменного имени будет ити редирект на основной домен(что бы не было дублирования контента)

И точно ли в таком случае тиц сплюсуется!?
Нет, тИЦ не должен плюсоваться

alexvinet.nx0.ru и liverus.ru - это разные вещи, если liverus.ru - основное имя, тогда ты и раскручивать должен только его(везде давать ссылки типа "http://www.liverus.ru")

Пример:
bigmir.net - тиц-2300, пр-7
bigmir.org - тиц-0, пр-0

Это доменное имя(bigmir.org) только вспомогательное, оно нужно только что бы пользователь опадал на основное

AlexV
01.07.2008, 13:52
Т.е. У меня есть хостинг на сайте nx0.ru - мне выделели место и домен alexvinet.nx0.ru! Потом я купил доменное имя liverus.ru и попросил прикрепить его к alexvinet.nx0.ru! Т.е. liverus.ru - это тоже самое что и alexvinet.nx0.ru. Но в данный момент у доменного имени alexvinet.nx0.ru тиц = 10, а у liverus.ru тиц = 0! Мне сказали что можно сделать - чтобы они были зеркальны, и яндекс не считал их отдельно, а сплюсовал все в одно! Как это сделать!? А то я вообще запутался.... Заранее спасибо!

AlexV
01.07.2008, 13:59
раскручивать должен только его
Да, я понял! А теперь кто может подсказать - чтобы чтобы они были зеркальны, и яндекс не считал их отдельно, а сплюсовал все в одно!??

Nek1t
01.07.2008, 14:01
2Solker,
Спс :) Сейчас скрипт затестю!
2Piflit,
без проксей капча на ~30-40 запросе в зависимости от таймаута
А если sleep(10) ? Все равно заставят капчу вводить? :o

Следующий вопрос :)
есть линк:
http://megasite.com/index.php?action=article&id=10&c=1&u=qwerty
Как средствами PHP получить линк такого вида, т.е. убрать все после знака "?" ?
http://megasite.com/index.php

real_kas
01.07.2008, 14:02
ээээ...не знаю.... но можно залезть в код админки и переписать Get на Post, как я описал в сообщении выше

помог вот такой код:

DirectoryIndex index.php
RewriteRule ^(\d+)\.php$ index.php?ELEMENT_ID=$1

Теперь при обращении к www.site.ru/2070.php у меня открывается страница с новостью.

Спасибо за наводку :)

Piflit
01.07.2008, 14:04
А если sleep(10) ? Все равно заставят капчу вводить?
да. хотя нет. от запроса зависит. если юзать спецзапросы, то точно да, если не юзать, хз. наврено, тоже да, но позже
Как средствами PHP
регулярка
([^\?]+).*

real_kas
01.07.2008, 14:05
2Solker,
Следующий вопрос :)
есть линк:
http://megasite.com/index.php?action=article&id=10&c=1&u=qwerty
Как средствами PHP получить линк такого вида, т.е. убрать все после знака "?" ?
http://megasite.com/index.php

передавать все POST запросом помойму нужно. тогда все светиться не будет

Naydav
01.07.2008, 14:09
liverus.ru - это НЕ тоже самое что и alexvinet.nx0.ru,
Есть понятие доменное имя (antichat.ru) , а есть хостинг который находиться на (89.108.125.122) Ну не знаю как там у античата, я для примера взял

Но если завтра antichat.ru поменяет доменное имя на chat.ru(или добавят еще одно), то у порследнего не будет ни тиц ни пр, доменного имени antichat.ru, а наоборот у последнего возникнут проблемы с дублированием контента, поэтому и нужно будет делать редирект

Тоесть имя chat.ru будет только для удобства, если пользоваетль введет chat.ru вместо antichat.ru

Поскольку зеркало – это фактически дубликат сайта, то многие поисковые системы (например, Яндекс), чтобы избежать дублирования информации, стараются не индексировать зеркала.

Если поисковая система сочла сайт зеркалом, то такой сайт не индексируется, а уже проиндексированные страницы могут быть удалены из базы поисковой системы.
Ну никак наверно честно нельзя передать тиц и пр одного доменного имени - другому
Разве, что при 301 редиректе и переиндексации поисковиками

AlexV
01.07.2008, 14:12
Как средствами PHP получить линк такого вида, т.е. убрать все после знака "?" ?
Это идет у тебя привязка по id к каждому пользователю! Необходимо в настройках кукис подправить! Скорей всего просто оставить поле домен куки пустым!

P.s. Вопрос о склейке доменов остался. :(

real_kas
01.07.2008, 14:15
P.s. Вопрос о склейке доменов остался. :(

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

AlexV
01.07.2008, 14:15
Тоесть имя chat.ru будет только для удобства, если пользоваетль введет chat.ru вместо antichat.ru
Naydav, спасибо тебе я понял это! Но мне нужно чтобы и у liverus.ru - показывался тиц 10, а не 0, как сейчас, т.е. чтобы яндекс понял что это одно и тоже! Т.е. мне необходимо склеить домены!

Что такое "зеркало сайта"?

Зеркало — частичная или полная копия сайта. Наличие дубликатов ресурса бывает необходимо владельцам высокопосещаемых сайтов для повышения надежности и доступности их сервиса.

Мой сайт показывается в результатах поиска не под тем именем. Как это исправить?

Скорее всего, сайт имеет несколько зеркал, и робот выбрал как основное не то зеркало, которое хочется вам.

Решение: выложите на зеркалах robots.txt с директивой Host.

Кроме того, возможно:
удалить зеркала вашего сайта;
на всех зеркалах, кроме того, которое станет основным, разместить файл robots.txt, полностью запрещающий индексацию сайта.

Вот я это хочу реализовать... :(

Naydav
01.07.2008, 14:21
Вот я это хочу реализовать...
имхо, ты никакне передашь тиц одного доменного имени - другому
В роботс ткст, можно запретить индексирование сайта поисковиком, опять же во избежание дублирования контента

AlexV
01.07.2008, 14:38
имхо, ты никак не передашь тиц одного доменного имени - другому
Вот что чел писал:
Делайте редирект со второго на первый. Яндекс в таких случаях плюсует тИЦы всех зеркал к основному домену.
Я это и хочу реализовать! А он уехал и будет не скоро.. :(

Naydav
01.07.2008, 14:39
Делайте редирект со второго на первый. Яндекс в таких случаях плюсует тИЦы всех зеркал к основному домену.
Чет сомневаюсь...
Ну попробуй :), спроси может в сео отделе...

Nek1t
01.07.2008, 14:43
real_kas
AlexV
Вы по-моему моего вопроса не поняли =D
Piflit
Спс, помог :)

mff
01.07.2008, 14:58
Подскажите, как новости обновлять на rss? Куда нужно ложить xml файл?

Jer1cho
01.07.2008, 15:17
Что значит куда ложить оО

<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss/rss.xml">

inlanger
01.07.2008, 15:52
Его не ложить, его парсить надо

mff
01.07.2008, 16:01
Что значит куда ложить оО

<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss/rss.xml">


Этот линк прописал, в html документе, в котором расположенна ссылка на rss.php

Создал в базе табличку
CREATE TABLE BLOG ( ID int(11) NOT NULL default '0', title varchar(50) default NULL, description text default NULL, link varchar(200) default NULL, date date default NULL, category varchar(100) NOT NULL default '', ab varchar(10) NOT NULL default '', PRIMARY KEY (ID) ) TYPE=MyISAM;

Жму на иконку rss попадаю на rss.php Opera просит добавить канал rss, добавляю, после чего открывается страничка, нет ни одной новости и написанно "не одной новости не выбрано"

Я так понимаю, php разбирать должен xml файл и сохранять его в базе?

Jer1cho
01.07.2008, 17:01
Правдо не совсем понял что тебе надо, но если прсото генерировать rss с помощью php и выборкой из бд то что-то типо этого:


<?php
header("Content-type: application/rss+xml");

echo "<?xml version=\"1.0\" encoding=\"windows-1251\"?>\n";
echo '<rss version="2.0" xml:base="http://your-site.ru/index.php" xmlns:dc="http://purl.org/dc/elements/1.1/">';
$result = mysql_query("SELECT * FROM `blog` ORDER by `date` ASC LIMIT 0,9999999999");
$y = mysql_num_rows($result);
echo "
<channel>
<title>Site - RSS</title>
<link>http://your-site.ru/index.php.php</link>
<description></description>
<language></language>
";
for($i = 0; $i < $y; $i++){
$row = mysql_fetch_array($result);

echo "
<item>
<title>".$row['title']."</title>
<link>http://".$row['link']."</link>
<description>".$row['description']."</description>
<pubDate>".date('D, d M Y H:i:s', $row['date'])." +0400</pubDate>
<dc:creator>Jer1cho</dc:creator>
</item>
";
}
echo "
</channel>
</rss>";
?>


— это будет твое сожержимое rss.php ......

mff
01.07.2008, 17:09
да , rss.php работает, вопрос куда новостьи запичывать? В XML? Если да то почему опера не отображает новости из xml?

Jer1cho
01.07.2008, 17:18
Ничо не понял. Новости у тебя в rss.php? Или у тебя он генерирует новости и пишет в xxx.xml? Может опере надо заголок передавать.. если в xml попробуй в .htaccess прописать Addtype application/x-httpd-php .xml и в xml дописать в начало <? header("Content-type: application/rss+xml"); ?> ну и если не в xml то в .php допиши...

mff
01.07.2008, 18:05
Моя задача повесить на сайт rss , читал сдесь http://www.caseclub.ru/articles/webrss.html. Всё так и сделал но новостей 0! Как их добавить? Их в базу вбивать или в xml? Ни чего непойму. HELP ME PLIS!!!

Nek1t
01.07.2008, 18:51
mff
Сначала в базу вбиваешь, а потом PHP-скрипт "на лету" формирует RSS, выдергивая контент из базы. Вроде так... :rolleyes:

mff
01.07.2008, 19:05
mff
Сначала в базу вбиваешь, а потом PHP-скрипт "на лету" формирует RSS, выдергивая контент из базы. Вроде так... :rolleyes:

Ни че непойму, это что нужно еще админку к базе писать? Как новости добавить? HELP ME!

zythar
01.07.2008, 19:25
берешь phpmyadmin к примеру. через него добавляешь в нужную таблицу новости, потом скриптом берешь данные из таблицы и формируешь rss.

mff
01.07.2008, 19:38
:) Я то возьму, а как люди которым делаю будут добавлять? И для чего нужен xml файл?

zythar
01.07.2008, 19:49
скриптом новости выводи, боже мой. доки нуно внимательнее читать

mff
01.07.2008, 20:22
Как вывести новости из xml ? Уже от мануала голова кругом :(

rss.inc
<?php
/* CRss версия 1.0 от 02.01.2007
* класс для создания каналов новостей RSS
* http://www.caseclub.ru
* используйте без ограничений
*/
class CRss
{
var $Title; // заголовок канала
var $Link; // ссылка на главную страницу
var $Copyright; // копирайт
var $Description; // описание канала
var $LastBuildDate; // дата последнего документа (по умолчанию текущая)
var $Language; // язык
var $PubDate; // дата публикации
var $ManagingEditor; // E-mail редактора
var $WebMaster; // E-mail webmaster
var $Category; // категория

var $Query; // содержимое запроса
var $Connect; // для соединения с базой данных
var $Result; // для хранения результата

function Translate($text) // кодируем для вывода
{


$trans = array("<" => "&lt;", ">" => "&gt;",'"' => "&quot;","&" => "&amp;");
$text=strtr($text,$trans);
$array=explode("<br>",$text);
$count=count($array);
return $text;

}

function Query()
{
$this->Result = mysql_query($this->Query) or die("Query failed");
}
function Open($Server,$DataBase,$Login,$Password) // открыть MySql
{
$this->Connect = mysql_connect($Server, $Login, $Password ) or die("Could not connect");
mysql_select_db($DataBase) or die("Could not select database");

}
function Close() // закрыть MySql
{
mysql_free_result($this->Result);
mysql_close($this->Connect);
}


function PrintHeader() // печать заголовка
{
header("Content-Type: application/xml "); // сразу говорим, что это формат XML
$RN="\r\n";
$End="?";
$Date=date("r"); // дата в формате Mon, 25 Dec 2006 10:23:37 +0400
print "<$End";
print "xml version=\"1.0\" encoding=\"windows-1251\" $End> $RN";
print "<rss version=\"2.0\">$RN";
print " <channel>$RN";
print " <title>$this->Title</title>$RN";
print " <category>$this->Category</category>$RN";
print " <link>$this->Link</link>$RN";
print " <copyright>$this->Copyright</copyright>$RN";
print " <description>$this->Description</description>$RN";
print " <lastBuildDate>$this->LastBuildDate</lastBuildDate>$RN";
print " <language>$this->Language</language>$RN";
print " <pubDate>$this->PubDate</pubDate>$RN";
print " <docs>http://site.ru/rss</docs>$RN";
print " <managingEditor>$this->ManagingEditor</managingEditor>$RN";
print " <webMaster>$this->WebMaster</webMaster>$RN";
}
function PrintBody($Title,$Link,$Description,$Category,$Pub Date) // печать тела
{
$RN="\r\n";
//$Title =$this->Translate($Title);
//$Link =$this->Translate($Link);
$Description =$this->Translate($Description);
print " <item>$RN";
print " <title>$Title</title>$RN";
print " <link>$Link</link>$RN";
print " <description>$Description</description>$RN";
print " <category>$Category</category>$RN";
print " <pubDate>$PubDate</pubDate>$RN";
print " <guid>$Link</guid>$RN";
print " </item>$RN";
}
function PrintFooter() // печать заголовка
{
print " </channel>$RN";
print "</rss>$RN";
}


}
?>


rss.php
<?php
// начало программы
include "rss.inc"; // это собственно класс
include "conn.inc"; // переменные для открытия базы


$Rss= new CRss();

$Rss->Title="RSS Мой сайт";
$Rss->Link="http://site.ru/rss/";
$Rss->Copyright="© .";
$Rss->Description="Описание";
$Rss->Category = "Разработка программного обеспечения";
$Rss->Language="ru";

$Rss->ManagingEditor="info@sandalhouse.ru";
$Rss->WebMaster="info@site.ru";
$Rss->Query="SELECT
BLOG.title,
BLOG.description,
BLOG.link,
BLOG.date,
BLOG.category
FROM BLOG
ORDER by DATE desc Limit 0,20";

$Rss->Open($Server,$DataBase,$Login,$Password);
$Rss->LastBuildDate=date("r");
// получаем последнюю дату публикации
$query = "select BLOG.DATE
FROM BLOG
ORDER by BLOG.date desc Limit 0,1";

$result1 = mysql_query($query)
or die("FROM blog failed");

$line = mysql_fetch_array($result1);

$Date =date("r",strtotime($line[0]));
mysql_free_result($result1);

$Rss->LastBuildDate=$Date;
$Rss->PubDate=$Rss->LastBuildDate;

$Rss->PrintHeader();
$Rss->Query();

while ($line = mysql_fetch_array($Rss->Result))
{ // для каждой записи выведем
$Title = $line[0];
$Description = $line[1];
$Link=$line[2];
$PubDate=date("r",strtotime($line[3]));
$Category=$line[4];
$Rss->PrintBody($Title,$Link,$Description,$Category,$Pub Date);
}
$Rss->PrintFooter();
$Rss->Close();

?>

rss.xml
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Моя лента новостей</title>
<link>http://www.моя_лента.ru</link>
<description>Самый лучший блог на свете</description>
<lastBuildDate>Sat, 30 Dec 2006 00:00:00 +0300</lastBuildDate>
<item>
<title>С Новым Годом!</title>
<link>http://www.моя_лента.ru/new1.html</link>
<description>Поздравляем всех читателей с Новым Годом</description>
</item>
</channel>
</rss>

Табличка в базе
CREATE TABLE BLOG ( ID int(11) NOT NULL default '0', title varchar(50) default NULL, description text default NULL, link varchar(200) default NULL, date date default NULL, category varchar(100) NOT NULL default '', ab varchar(10) NOT NULL default '', PRIMARY KEY (ID) ) TYPE=MyISAM;

l0l1k
02.07.2008, 03:08
можете обяснить чо такое class в php? мне совсем из учебников не понятно ((((
эта типа функций?
к обяснению я бы не против что бы написали пример в паскале. может через него пойму.

PHPoozy
02.07.2008, 04:01
class - это конструкция задающая образец по которому будет построен объект

l0l1k
02.07.2008, 04:08
class - это конструкция задающая образец по которому будет построен объект
такое я и в учебнике вижу
мне надо чтоб обяснили совсем на пальцах :rolleyes:

PHPoozy
02.07.2008, 04:14
мне надо чтоб обяснили совсем на пальцах

_http://www.killerphp.com/videos/oop_objects_and_classes/objects_and_classes.html

nbd
02.07.2008, 07:48
такое я и в учебнике вижу
мне надо чтоб обяснили совсем на пальцах :rolleyes:

По просьбам трудящихся.

Вот смоти у тебя на руке есть 5 объектов "палец", каждый палец имеет определенный набор свойств и методов. Допустим:

класс палец{
var $длина; //это
var $ширина; //свойства
var $цвет="телесный"; //пальца
var $название;
var $положение=0; //текущее положение пальца, то есть палец не согнут.
function сгибание_пальца($угол) { //сгибание_пальца это метод работы с обектом палец.
this->положение=this->положение+$угол;
if (this->положение<0) {echo "Чувак, ты сломал палец!";} else {echo "ты согнул палец на $угол градусов";}
}
function рост_пальца($прирост_длины, $прирост_ширины) {
.......
}
function изменение_имени_пальца($нов ое_имя) {
................
}
function изменение_цвета_пальца($цве т) {
.....................
}
}


На основании этого класса ты, например, можешь создать объект "указательный палец" и используя методы(функции класса) менять свойства(переменные класса) объекта палец.
Думаю данное объяснение может и образно не на пальцах, но зато, на пальцах фактически (=

!{ra!{e/\/
02.07.2008, 08:00
кусочек из html кода
<option value="hersteller1">ALFA ROMEO</option>
<option value="hersteller2">ALPINE</option>
<option value="hersteller3">ARO</option>
<option value="hersteller4">AUDI</option>
<option value="hersteller5">AUSTIN</option>
<option value="hersteller6">AUTO UNION</option>

мне надо выдрать из этого
ALPINE
ARO
AUDI
AUSTIN
AUTO UNION
какое регулярное выражение мне для этого использовать?

nbd
02.07.2008, 08:26
А зачем тебе здесь регулярка? Вполне хватит

$filename="test.txt";
$buff=file_get_contents($filename);
echo strip_tags($buff,"<br>");

а если нужна регулярка то вот:
/[A-Z\s*]+/

!{ra!{e/\/
02.07.2008, 08:44
а если нужна регулярка то вот:
/[A-Z\s*]+/
А она правильная?
<?php
$file = file_get_contents('http://www.aamkatalog.ctapps.de/aam_katalog.pl?action=kfzsearch&lang=en');
$pattern = "/[A-Z\s*]+/";
preg_match_all($pattern,$file,$matches);
//print_r($matches);
//echo strip_tags($file);
foreach($matches[1] as $link) echo $link.'<br>';
?>
почему то ничего не выдает((

zythar
02.07.2008, 09:07
попробоуй \s убрать. что тогда будет?

!{ra!{e/\/
02.07.2008, 09:25
попробоуй \s убрать. что тогда будет?
все так же(((..ничего не выдает((

nbd
02.07.2008, 09:30
дело не в \s та регулярка была для куска хтмл кода, что ты привел
а тебе для выковыривания лишних тегов нужна эта ;)

/>([A-Z\s*]+)</

и отфильтруй потом массив от пустых значений.

<?php
$file = file_get_contents('http://www.aamkatalog.ctapps.de/aam_katalog.pl?action=kfzsearch&lang=en');
$pattern = "/>([A-Z\s*]+)</";
preg_match_all($pattern,$file,$matches);
$matches[1]=array_unique($matches[1]);
foreach($matches[1] as $link) echo $link.'<br>';
?>

!{ra!{e/\/
02.07.2008, 09:57
<option value="aam_katalog.pl?action=kfzsearchresults&lang=en&hs=1&md=232">145 (930)</option>
а как собрать отсюда это
aam_katalog.pl?action=kfzsearchresults&lang=en&hs=1&md=232
какое регулярное выражение нужно?

Red_Red1
02.07.2008, 10:05
Можно вот так $pattern='<option value=\"(\S+)\"'
или даже $pattern='\"(\S+)\"'

Вот тебе конструктор http://www.pcre.ru/eval/
пробуй, я тут собирал регулярки которые привел.

krypt3r
02.07.2008, 10:11
#<option\s+value=\"([^\"]+)\">[^<]+</option>#

Shadow_p1raT
02.07.2008, 11:15
У меня есть строка:

Давление 701 мм рт ст Температура +21 °c Ветер Северный (340°), 1 м/с Влажность 49% Облачность 90% Явления Нет

Как сделать что бы было так:

Давление 701 мм рт ст
Температура +21 °C
Ветер Северный (340°), 1 м/с
Влажность 49%
Облачность 90%
Явления Нет

krypt3r
02.07.2008, 11:43
Лучше бы в исходной строке был разделитель какой-нить для простоты, а так попробуй это (строка имеет фиксированную структуру)

<?php
$str = "Давление 701 мм рт ст Температура +21 °c Ветер Северный (340°), 1 м/с Влажность 49% Облачность 90% Явления Нет";
$str = preg_replace ("/\s+/", " ", $str);
$arr = explode (' ', $str);
$cnt = count ($arr);
for ($i = 0; $i < $cnt; $i++)
if ($i == 5 || $i == 8 || $i == 13 || $i == 15 || $i == 17)
echo "\n$arr[$i] ";
else
echo "$arr[$i] ";
echo "\n";
?>

Shadow_p1raT
02.07.2008, 12:14
Не помогло,но всё равно спс.

PHPoozy
02.07.2008, 12:18
пожалуйста помогите написать бот для народ.ру
сколько раз пытался но все равно не получается
плиз хелп ми :-(

Shadow_p1raT
02.07.2008, 12:21
Какой именно бот ты хочешь написать?

Gifts
02.07.2008, 12:21
Shadow_p1raT, А если регуляркой?
<?php
$str = "Давление 701 мм рт ст Температура -21 °c Ветер Северный (340°), 1 м/с Влажность 49% Облачность 90% Явления Нет";
preg_match('/(Давление [0-9]+ мм рт ст).*(Температура [+|-]{1,1}[0-9]+ °c).*(Ветер Северный \([0-9]+°\), [1-9]+ м\/с).*(Влажность [0-9]+\%).*(Облачность [0-9]+\%).*(Явления .*)/i',$str,$out);
$out[0]='';
echo implode('<br>',$out);
?>

Shadow_p1raT
02.07.2008, 12:25
блин,не подумал.Gifts спс.

PHPoozy
02.07.2008, 12:42
Какой именно бот ты хочешь написать?
обычный чат-бот главное что бы работал

Gifts
02.07.2008, 12:51
PHPoozy, народ.ру не поддерживает ПХП скрипты. Ищите другой хостинг. А по вашему вопросу - скачайте какой нить стандартный чат - просто так вам с нуля никто писать не будет.

PHPoozy
02.07.2008, 13:05
Gifts вы меня не поняли насчет хостинга у меня есть платный ну кто поможет?

zythar
02.07.2008, 13:08
ну дак найди исходники простого бота сначала, потом в этом боте поменяй кое что и подогни под себя. тут впринципе знание языка не критично. нуно просто мозгами пошевелить

Chaak
02.07.2008, 17:52
Вопрос такой:

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

Файл настроек:
//*************DataBase********************/
$dbhost = 'localhost'; // DataBase host
$dbuser = 'root'; // DataBase user
$dbpass = ''; // DataBase pass
$db = 'aaa'; // DataBase name
/*****************************************/
Еще много чего...
Как реализвать чтобы у меня файл не перезаписывался, а изменялись только те строки, где было применено измменение?
Спасибо.

bxN5
02.07.2008, 18:04
что то я не понял толком что ты хочешь, ну реализуй класс и используй нужные методы потом

Naydav
02.07.2008, 18:16
ChaaK
у меня есть файл с настройками. Пишу админку. Нужна функция изменения параметров.
Вынеси настройки в конфиг типа
'dbhost ':'localhost',
'dbuser':'root',
...
А к файлу конфига обращайся, через методы класса "конфиг"

пс файл конфиг может и так выглядеть
$settings = array(
'dbhost '=>'localhost',
'dbuser'=>'root',
...
);
Тогда проще находить определенный элемент(а также изменять его)
Можно и сеарилизовывать массив, но это уже имхо перебор(правда так легко изменять данные)

А вообще такие все настройки должны храниться в файле формата .xml, это почти идеальный вариант, так ими легко манипулировать
А изменять и получать значения, как я уже говорил нужно через методы класса "конфиг"

Корвин
02.07.2008, 18:26
вот наглядный пример из моей админки, файл site.config



<?
class object { };

$CFG = new object();
$CFG->siterootid=1;
$CFG->encoding = "windows-1251";
$CFG->use_cache = false;
$CFG->cache_expire_time = 3600;
$CFG->dir_perms = 0755;
$CFG->file_perms = 0644;
$CFG->moduleUploadDir = '/module_upload/';
?>

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

Кубик Рубик
02.07.2008, 20:47
Здравствуйте! Суть проблемы состоит в этом:
Допустим у нас есть скрипт:

<html>
<head>
<title> Проверка формуляра </title>
</head>
<body>
<center>
<?php
echo "Вас зовут ".$_POST['Name'];
if (!$_POST['Name']) { echo "<br>Заполните форму!"; } ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" size="10" name="Name">
<input type="submit" value="запрос!">
</form>
</center>
</body>
</html>

Из него видно, что при вводе в форму вашего имени скрипт пишет "Вас зовут, ИМЯ".
Так же стоит проверка формы на заполнение, т.е. если форма пуста скрипт отвечает нам "Заполните форму!".
Проблема состоит в том, что сразу после открытия скрипта он уже упрекает пользователя в том, что он не заполнил форму, да и в добавок выполняет первую строку скрипта (короче вообще весь php код выполняет).
Как сделать так чтобы вся работа скрипта отображалась после нажатия кнопки? :confused: :confused:

zythar
02.07.2008, 20:51
<?php
if (!$_POST['Name']) {
echo "<br>Заполните форму!";
} else {
echo "Вас зовут ".$_POST['Name'];
};
?>


так вроде?

PHPoozy
02.07.2008, 20:57
<?php
$NAME = isset($_POST['Name']) ? $_POST['Name'] : "";

if($_POST['act'])
{
if($NAME){
echo "Вас зовут, $NAME";
}else{
?>
<html>
<head>
<title> Проверка формуляра </title>
</head>
<body>
<center>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" size="10" name="Name">
<input type="submit" name="act" value="запрос!">
</form>
</center>
</body>
</html>
<?php
}
}
?>

Chaak
02.07.2008, 21:05
Кто нибудь может предложить чтонибудь попроще, или привести конкретный, работающий пример?

PHPoozy
02.07.2008, 21:09
Кто нибудь может предложить чтонибудь попроще, или привести конкретный, работающий пример?

смотрим вверх =|

zythar
02.07.2008, 21:10
Вопрос такой:

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

Файл настроек:
//*************DataBase********************/
$dbhost = 'localhost'; // DataBase host
$dbuser = 'root'; // DataBase user
$dbpass = ''; // DataBase pass
$db = 'aaa'; // DataBase name
/*****************************************/
Еще много чего...
Как реализвать чтобы у меня файл не перезаписывался, а изменялись только те строки, где было применено измменение?
Спасибо.

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

PHPoozy
02.07.2008, 21:21
ChaaK через инклуд проще

include("./class.admin.php");

после ссылаемся на нужный обжект

Chaak
02.07.2008, 23:24
имхо легче сделать так чтобы файл перезаписивался. а чем тебе этот вариант не устраивает?
у меня этом файле много переменных... да и на производительности сказывается. Поэтому прошу привести готовый пример.

pento
03.07.2008, 00:27
у меня этом файле много переменных... да и на производительности сказывается. Поэтому прошу привести готовый пример.
В чем проблема большинство настроек в базу перенести?

cash$$$
03.07.2008, 01:36
Вопрос такой:

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

Файл настроек:
//*************DataBase********************/
$dbhost = 'localhost'; // DataBase host
$dbuser = 'root'; // DataBase user
$dbpass = ''; // DataBase pass
$db = 'aaa'; // DataBase name
/*****************************************/
Еще много чего...
Как реализвать чтобы у меня файл не перезаписывался, а изменялись только те строки, где было применено измменение?
Спасибо.

Скажу двумя словами ИМХО, можно использовать ссылку (чтобы изменение переменной внутри функции влияло на неё вне функции: function tst(&$secreload), аналог function tst(var secreload); в Pascal) или обычный параметр функции (тогда в теле функции вы работает с копией первоначальной переменной: function tst($secreload)). Ниже подробнее. Вот пример постой функции с одним параметром и с вызовом функции:
<I> <?php function tst($str) // описание функции { echo $str; // эти три строки являются телом функции $str="OK, done"; return $str; } $str="Привет Вам, это сказал я <BR>"; tst($str); echo $str."<BR>"; ?> </I>

Gadik
03.07.2008, 14:55
добрый день. Помогите пожалуйста с регулярочкой. пробовал конструктором собрать, не получилось.

нужно из текста вида:
d>03114796&nbsp;</td>
<td>2007&nbsp;</td>

<td>&nbsp;</td>
<td>
<a href="ua/report?id=25044&amp;p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20

вытащить цифру которая стоит перед &amp;p=1

Jer1cho
03.07.2008, 15:08
<?php
$text = 'd>03114796&nbsp;</td>
<td>2007&nbsp;</td>
<td>&nbsp;</td>
<td>
<a href="ua/report?id=25044&amp;p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20';

$regexp = "#id=([^\"]+)&amp;#";
preg_match_all($regexp,$text,$m);
foreach($m[1] as $d) echo $d."<br />";
?>

Gadik
03.07.2008, 15:18
а если таких цифр в $text будет больше одного, то как обращаться именно к примеру к третьей найденой? $d[3] ???

Jer1cho
03.07.2008, 15:29
<?php
$text = 'd>03114796&nbsp;</td>
<td>2007&nbsp;</td>
<td>&nbsp;</td>
<td>
<a href="ua/report?id=25044&amp;p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20d>03114796&nbsp;</td>
<td>2007&nbsp;</td>
<td>&nbsp;</td>
<td>
<a href="ua/report?id=25043&amp;p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20d>03114796&nbsp;</td>
<td>2007&nbsp;</td>
<td>&nbsp;</td>
<td>
<a href="ua/report?id=25042&amp;p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20d>03114796&nbsp;</td>
<td>2007&nbsp;</td>
<td>&nbsp;</td>
<td>
<a href="ua/report?id=25041&amp;p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20d>03114796&nbsp;</td>
<td>2007&nbsp;</td>
<td>&nbsp;</td>
<td>
<a href="ua/report?id=25040&amp;p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20';

$regexp = "#id=([^\"]+)&amp;#";
preg_match_all($regexp,$text,$m);
echo $m[1][2];
?>

....

PHPoozy
03.07.2008, 15:30
Gadik все совпадения с регуляркой будут помещены в $m[1]

Gadik
03.07.2008, 15:42
все, понял. спс, за помощь

Nightmarе
03.07.2008, 15:46
function H(Text,Key: String; Encode: boolean): String;
var
i, KeyLength: integer;
Sign: ShortInt;
begin
KeyLength:=Length(Key);
if Encode then Sign :=-1 else Sign:=1;
for i:=1 to Length(Text) do
Text[i]:=chr(ord(Text[i])+Sign*ord(Key[i mod KeyLength+1]));
Result:=Text;
end;


Это функция на делфи для шифровки\дешифровки текста с открытым ключём.

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

emik
03.07.2008, 16:29
<html> <head> <title> Проверка формуляра </title> </head> <body> <center> <?php echo "Вас зовут ".$_POST['Name']; if (!$_POST['Name']) { echo "<br>Заполните форму!"; } ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="text" size="10" name="Name"> <input type="submit" value="запрос!"> </form> </center> </body> </html>

Как сделать так чтобы вся работа скрипта отображалась после нажатия кнопки?


вообщим тебе нужно просто розбить на 2-х файла. Впринцыпе так показываю во всех учебниках - где ты отодрал этот кусок понять немогу :confused: .

Файл_1. index.html

<html>
<head>
<title> Проверка формуляра </title>
</head>
<body>
<center>

<form action="script.php" method="post">
<input type="text" size="10" name="Name">
<input type="submit" value="запрос!">
</form>
</center>
</body>
</html>


Файл_2 script.php



<?php
echo "Вас зовут ".$_POST['Name'];
if (!$_POST['Name'])
{
echo "<br>Заполните форму!";
}
?>



это действуэт так:

в файле index.html находится НТМЛ розметка страницы и форма. Тогда когда ты нажмеш на кнопку "выполнить запрос" исполнится тот файл который записан в параметре action для формы. В даном случаи это

<FORM ACTION = "script.php">

далие скиптом в файле script.php нужно получить значение полей формы. Для этого при создании формы мы указали метод POST (<FORM METOD = "POST" > ) с помощю которого можно получит значение переменных. $_POST['Name']

PHPoozy
03.07.2008, 16:57
В общем если кто сможет, пожалуйста перепишите алгоритм под php если это возможно, чтобы можно было бы по этому же алгоритму шифровать и дешифровать текст...


function H($text, $key, $encode){
$KeyLength = strlen($key);
if($encode){ $Sign = -1; }else{ $Sign = 1;}
for($i=1; $i < strlen($text); $i++){
$ik = (int)($i / $KeyLength) + 1;
$text[$i] = chr(ord($text[$i]) + $Sign * ord($key[$ik]));
}
return $text;
}

Nightmarе
03.07.2008, 17:03
PHPoozy спс, но к сожалению скрипт генерирует уже другие символы, а надо чтобы именно такая же шифровка была как и на делфи.

nbd
03.07.2008, 17:11
<?php
//function H(Text,Key: String; Encode: boolean): String;
//var
// i, KeyLength: integer;
// Sign: ShortInt;
//begin
// KeyLength:=Length(Key);
// if Encode then Sign :=-1 else Sign:=1;
// for i:=1 to Length(Text) do
// Text[i]:=chr(ord(Text[i])+Sign*ord(Key[i mod KeyLength+1]));
// Result:=Text;
//end;
function H($text,$key,$encode) {
$keylength=strlen($key);
if ($encode) {$sign=-1;} else {$sign=1;}
$text_len=strlen($text);
for ($i=0;$i<=$text_len;$i++){
$text[$i]=chr(ord($text[$i])+$sign*ord($key[fmod($i,$keylenght+1)]));}
return $text;
}
?>

Найт, выложи суда результат работы функции в Дельфях,

верни в for $i=0 так правильнее, а вообще трабл может быть и в кодировках браузера.

Nightmarе
03.07.2008, 17:25
Ну вот пример работы на делфи:
H('text','password', true);
Выводит: тэ
H('text','password', false);
Выводит: ХШлл

А вот работа на php:
H('text','password', true);
Выводит: t
H('text','password', false);
Выводит: tЖЩХ

Немного похоже, но не то :(

cry10010
03.07.2008, 17:42
Кароче вот такой вот примитивнейший скриптик на вывод изображений:

<html>
<head><title>Моя практитка этих... как их... масивов бля )))</title></head>
<body>
<table width="100%" align="center" border="1" bgcolor="c7c7c7">
<tr>
<td width="50%">
<p>Получения случайного значения
из масива с 4-ю значениями и вывода соответсвующей кортинки</p></td>
<td width="50%">
<?php
$masiv[0] = "Случайное значение 1";
$masiv[1] = "Случайное значение 2";
$masiv[2] = "Случайное значение 3";
$masiv[3] = "Случайное значение 4";
$pict[0] = "pict\\1.png";
$pict[1] = "pict\\2.png";
$pict[2] = "pict\\3.png";
$pict[3] = "pict\\4.png";
$x = rand($min=1 , $max=3);
echo $masiv[$x]."<br>";
echo "<img src=\"". $pict[$x]."\"><br>";
?>
</td>
</tr>
</table>
</body>
</html>


Думаю здесь понятно все. Кортинки могут лежать где угодно, просто создается масив содержащий адреса к ним, вместо "Случайное значение" может быть, наприер, комент к картике... Или вызывать определенную функцию... Кароче это уже пох

ZET36
03.07.2008, 17:46
Здравствуйте не подскажите как должен выглядить скрипт который перехватывает запросы посылаемые ему со всех портов или с указанного отдельно (и лог сохраняет)

.Slip
03.07.2008, 18:00
Вопрос по ООП
Возможен ли вынос описания работы функции из блока самого класса? Пример на C++:

class test
{
somefunc();
};

test::somefunc() { cout << "test" << endl; }
Вот в php пытаюсь сделать тоже самое, но не выходит. Стало быть обязательно делать описание работы функции в самом блоке?

PHPoozy
03.07.2008, 18:31
Немного похоже, но не то :(

так попробуй

function H($text, $key, $encode){
$lntext = strlen($text);
$result = "";
$fordlt = -$lntext ;
$KeyLength = strlen($key);
if($encode){ $Sign = -1; }else{ $Sign = 1;}
for($i=0; $i < $lntext; $i++){
$ik = (int)($i / $KeyLength) + 1;
$result.= chr(ord(substr($text, $fordlt++, 1)) + $Sign * ord($key[$ik]));
}
return $result;
}

PHPoozy
03.07.2008, 19:04
Возможен ли вынос описания работы функции из блока

я делаю так:


function somefunc()
{
print "test";
}


class test
{
function root()
{
somefunc();
}
}
$osd = new test;
$osd->root();

temp_late
04.07.2008, 00:24
Существует текст(html код, с содержимом), нужно удалить все html теги и оставть только текст вне тегов.

Нужно удалить весь текст распаложен между "<"и ">" , и сами открывающиеся и закрывающиеся скобки.
Как это сделать?

GreenBear
04.07.2008, 00:34
http://ru2.php.net/strip_tags

Chaak
04.07.2008, 09:04
Существует текст(html код, с содержимом), нужно удалить все html теги и оставть только текст вне тегов.

Нужно удалить весь текст распаложен между "<"и ">" , и сами открывающиеся и закрывающиеся скобки.
Как это сделать?
Для защиты о xss, ты можешь эти места не удалять, а воспользываться функцией htmlspecialchars();

nbd
04.07.2008, 10:44
htmlspecialchars() не удаляет теги а заменяет символы < > ' " & их html-сущностями,а вопрос поставлени как удалить.

эмм.. Спасибо конечно за ответ, но вопрос не от меня и ответ уже был дан, через один пост выше =)

Naydav
04.07.2008, 10:51
а вопрос поставлени как удалить.
Попробуй strip_tags()

strip_tags

(PHP 3 >= 3.0.8, PHP 4, PHP 5)
strip_tags -- Удаляет HTML и PHP тэги из строки
Описание
string strip_tags ( string str [, string allowable_tags] )

Эта функция возвращает строку str, из которой удалены HTML и PHP тэги. Для удаления тэго используется автомат, аналогичный примененному в функции fgetss().

Dr.Frank
04.07.2008, 10:59
*пать... GreenBear же 10 часов назад ответил на этот вопрос:
http://ru2.php.net/strip_tags

Lucifer6072
04.07.2008, 11:04
Хочу спросить про почту Тут я виднл или мне приснилось Что можно зарегестрироватся на сайтах по левой почте А потом она как бы удоляется А настоящая почта остаётся в тини незамеченная Помогите найти если это существует

Naydav
04.07.2008, 11:13
Хочу спросить про почту Тут я виднл или мне приснилось Что можно зарегестрироватся на сайтах по левой почте А потом она как бы удоляется А настоящая почта остаётся в тини незамеченная Помогите найти если это существует
А мне присниось, что ножи в counter-strike метать можно, только, и про это и про почту, тут в скрытых разделах спрятано, нужно у гур спрашивать :)

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

blaga
04.07.2008, 11:21
народ. у кого нить есть готовый алгоритм вывода дерева с (теоритической) возможностью бесконечности. то есть в БД есть есть элементы, их нужно вывести в дерево сохранив связи....

Naydav
04.07.2008, 11:33
народ. у кого нить есть готовый алгоритм вывода дерева с (теоритической) возможностью бесконечности. то есть в БД есть есть элементы, их нужно вывести в дерево сохранив связи....
Посмотри это http://www.codenet.ru/webmast/php/trees.php

а также
http://www.parser.ru/examples/trees/

Рекурсивные SQL запросы
http://habrahabr.ru/blog/sql/44601.html

blaga
04.07.2008, 11:54
Naydav, не то немного. (

ZET36
04.07.2008, 13:19
как настроить поддержку сокетов на денвере а то при

<?php
$sock = socket_create(AF_INET, SOCK_RAW, getprotobyname('icmp'));
echo $sock;
?>


выдаёт Call to undefined function: socket_create()

Ps функция fsockopen() работает нармально

Naydav
04.07.2008, 13:22
ZET36
выдаёт Call to undefined function: socket_create()

1) проверь
надо найти php_sockets.dll, положить ее к собратьям и раскоментировать строку ;extension=php_sockets.dll в php.ini.

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

3)Перезалей саму библиотеку
_http://www.nodevice.ru/dll/P_p23.html

ZET36
04.07.2008, 14:07
Naydav спасибо, работает

AdReNa1!Ne
04.07.2008, 15:14
Есть кукисы контакта. Необходимо выдрать id оттуда.
preg_match('/remixmid=(\d+);/i',$cookies, $id);

Приведенный выше код отказывается работать. Хелп)

.:EnoT:.
04.07.2008, 15:26
Есть кукисы контакта. Необходимо выдрать id оттуда.
preg_match('/remixmid=(\d+);/i',$cookies, $id);

Приведенный выше код отказывается работать. Хелп)
Откровенно говоря твоя регулярка работает))
$cookies = 'remixmid=123456; remixemail=mail%40mail.ru; remixpass=password';
preg_match('/remixmid=(\d+);/i',$cookies, $id);
echo $id[1];

Jer1cho
04.07.2008, 15:29
<?php
$cookies = 'remixmid=45452545 remixemail=dsada@mail.ru remixpass=dasdasd';
$regexp = "#remixmid=([^\"]+[0-9])#";
preg_match_all($regexp, $cookies, $m);
foreach($m[1] as $d) echo $d."<br />";
?>

AdReNa1!Ne
04.07.2008, 15:52
1) куки контакта разделяются ;
2) Почему-то он remixmid= удаляет, выводит id и показывает остальное...

Jer1cho
04.07.2008, 16:05
Ошибся. Исправил:

<?php
$cookies = '
remixmid=545654; remixemail=dsada@mail.ru; remixpass=dasdasd;
remixmid=13; remixemail=dsada@mail.ru; remixpass=dasdasd;
remixmid=444; remixemail=dsada@mail.ru; remixpass=dasdasd;
remixmid=212; remixemail=dsada@mail.ru; remixpass=dasdasd;
';
$regexp = "#remixmid=([0-9]+)#";
preg_match_all($regexp, $cookies, $m);
foreach($m[1] as $d) echo $d.'<br />';
?>

то есть он будет выводить сам ид без remixmid=, так ведь надо?

AdReNa1!Ne
04.07.2008, 16:11
ага) Спасиб) Я, кстати, свою регулярку поправил и она тож работает)

На100ящий
04.07.2008, 16:46
Скажите как можно пройти Бэйсик авторизацию на пхп, с логином и паролем????

Jer1cho
04.07.2008, 16:59
<?php
$login = 'test';
$pwd = 'test';

if(!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']!==$login || $_SERVER['PHP_AUTH_PW']!==$pwd)
{
header('WWW-Authenticate: Basic realm="Authorization"');
header('HTTP/1.0 401 Unauthorized');
exit('<b>access denied.</b>');
}
echo 123;
?>

Или ты имел введу как обойти? Бэйсик только брутом...

Naydav
04.07.2008, 17:43
<?php
$login = 'test';
$pwd = 'test';

if(!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']!==$login || $_SERVER['PHP_AUTH_PW']!==$pwd)
{
header('WWW-Authenticate: Basic realm="Authorization"');
header('HTTP/1.0 401 Unauthorized');
exit('<b>access denied.</b>');
}
echo 123;
?>

Или ты имел введу как обойти? Бэйсик только брутом...

Стоит добавить, что использование php для проведения http аутентификации возможно лишь в том случае, если php установлен как модуль Apache

svesve
04.07.2008, 18:04
помогиет разобраться
есть неки перловский скрипт при обращении к которому получаю тупо один текст

Вытаскиваю содержимое в переменную хтмл и потом ее вывожу НО не сохраняется формат выведенного тоесть табуляция перевод строк и т.д. подскажите что да как подправить где и что почитать ))

$html = implode ('', file ('http://site/cgi-bin/trstat.pl?code=teslaing&month=2008-06'));
echo $html;

в дальнейшем просто нужно будет из массива брать данные и подставлять на место code= и month=
и выводить рез-т скрипта в файл.
спс.

GreenBear
04.07.2008, 18:06
echo file_get_contents('http://site/cgi-bin/trstat.pl?code=teslaing&month=2008-06');

PHPoozy
04.07.2008, 18:11
svesve
$html = file("file.html");

for($i=0; $i < count($html); $i++)
{
print $html[$i];
}
-
-
-
пробел необезательно ;)

Demetra
04.07.2008, 18:49
народ погите,как добавить активацию мэйла к реге?на файлах.я знаю тока что в конец ссылки добавлять переменую ключа это можно как мд5 от логина,опишите пожалуста последовательность действий я непойму принцип работы этого

GreenBear
04.07.2008, 19:02
никаких заранее известных данных в ключе быть не должно.
а алгоритм прост до безумия : делаешь ему дополнительное поле типа active, со значением 1 - активный, 0 - не подтвержденный.
хеш РАНДОМНЫЙ пишешь например в файл /tmp/ХЕШ
внутри него ид аккуанта, от которого этот хеш.
потом просто проверяешь и если файл есть, берешь из него ид аккуанта и меняешь значение active на 1.
соответственно при логине на сайт нужно тоже это учесть.
и вообще файлы это прошлый век, юзай базы данных.

Naydav
04.07.2008, 19:09
1) Юзер заносит свои данные
Выполняються следующие действия
- Он заноситься в базу со статусом confirm = 0, береться $last_insert_id
- Заноситься поле в дополнительную таблицу, ввида
id | user_id | confirm_code
.. | $last_insert_id | md5(time()+$last_insert_id) (можно еще и дату, типа в течении 3дней)
- Высылаеться письмо юзверю со ссылкой
mysite.com/confirm.php?user=md5(time()+$last_insert_id)

2) Юзер перешел по ссылке
Проверяем присутствует ли запись в таблице с confirm_code, если да берем из этой таблицы user_id, а по нему переводим значение confirm юзера в 1, если нет к Анатолею
При входе юзера на сайт в запрос дополнительно ставим "AND `confirm`==1"
На файлах смысл тот же.... Только бд в файлах, а это имхо изврат, даже для маленьких сайтов

Это самый простой вариант, можно еще доп проверки ставить, такие как логин
_____________________________

Пока писал ГринБир уже ответил :(

GreenBear
04.07.2008, 19:15
mysite.com/confirm.php?user=md5(time()+$last_insert_id)
пишем брут на 5 строчек и активируем аккуант.

Chaak
04.07.2008, 19:15
народ погите,как добавить активацию мэйла к реге?на файлах.я знаю тока что в конец ссылки добавлять переменую ключа это можно как мд5 от логина,опишите пожалуста последовательность действий я непойму принцип работы этого
Вообщем все просто! Не буду приводить полный скрипт, но объясню по подробней.

Скажем при реге генирируем какойнибудь ключ, например так:
$key = md5((rand(100000,500000)*microtime()*100000).$logi n.$pass)
Заносим, скажем, это значение в колонку key.
И отправляем ссылку на почту юзера:
http://site.ru/confirm.php?key=$key


А в файле confirm.php создаем примерно такой скрипт:
<?php
$confirmed = "Тут результат ключа из бд!";
if($_GET['key']==$confirmed){
mysql_query("Отчищаем поле в колонке key");
echo "Ваш профиль теперь активирован :)";
}else{
echo "Такого ключа нету";
}
?>

Осталось лишь поставить на страницу скажем profile.php:
if($keyresult==''){
//выводим профиль
}else{
echo "Ваш профиль не активирован!";
}
Где $keyresult - пустое значение из колонки key.

Т.е если поле пусто то профиль активируется, если нет то просит активации.

Naydav
04.07.2008, 19:18
пишем брут на 5 строчек и активируем аккуант.
Не спорю, а как мы узнаем $last_insert_id?
Разве, региться и смотреть, проскочит ли, где-то в персональных настройках

А вообще, я хотел ипользовать microtime(), просто спешил ответить

GreenBear
04.07.2008, 19:21
свой ид пользователю узнать труда почти никогда не составляет.

Chaak
04.07.2008, 19:22
А вообще, я хотел ипользовать microtime(), просто спешил ответить
После того как я запостил свое сообщение))

Naydav
04.07.2008, 19:24
После того как я запостил свое сообщение))
я его даже не читал

вчера делал с микротайм
чессно :)

А вообщето , о да, я скопипастил сообщение великого чака

Chaak
04.07.2008, 19:31
я его даже не читал

вчера делал с микротайм
чессно :)

А вообщето , о да, я скопипастил сообщение великого чака
Точно!. Но какая разница). Надеюсь Человек поймет , на основе наших сообщений.

xxxxxxxxxxxxxxx
04.07.2008, 19:32
у меня такой вопрос. есть страница 1.html с 3мя чекбоксами
<input type="checkbox" name="1" value="">
<input type="checkbox" name="2" value="">
<input type="checkbox" name="3" value="">
<input type="submit" value="ok">
и страница 1.php которая выполняет простые математические действий. как зделать так чтоб нажимаешь одну или более чекбоксов и жмешь ок и выполнялись те действия которые выбрал.
если у кого есть пример калькулятора на пхп поделитесь)))

GreenBear
04.07.2008, 19:34
делай как массив. name="do[]"

if(is_array($_POST['do']) && sizeof($_POST['do'])){
foreach($_POST['do'] as $value){
//
}
}else{
echo 'error';
}

PHPoozy
04.07.2008, 19:49
как зделать так чтоб нажимаешь одну или более чекбоксов и жмешь ок и выполнялись те действия которые выбрал.
если у кого есть пример калькулятора на пхп поделитесь)))
<?php

$tt = $_POST['tt'];

if ($tt[1] and $tt[2] and $tt[3]) {
print "1 2 3";
}elseif($tt[1] and $tt[2] || $tt[3]) {
if($tt[1] and $tt[2]) {
print "1 2";
}if($tt[1] and $tt[3]) {
print "1 3";
}elseif($tt[2]){
print 2;
}else{
print 1;
}

?>

xxxxxxxxxxxxxxx
04.07.2008, 20:38
<?php

$tt = $_POST['tt'];

if ($tt[1] and $tt[2] and $tt[3]) {
print "1 2 3";
}elseif($tt[1] and $tt[2] || $tt[3]) {
if($tt[1] and $tt[2]) {
print "1 2";
}if($tt[1] and $tt[3]) {
print "1 3";
}elseif($tt[2]){
print 2;
}else{
print 1;
}

?>





а чекбоксы в таком случае как обзывать?

так?
<input type="checkbox" name="tt" value="">
<input type="checkbox" name="tt" value="">
<input type="checkbox" name="tt" value="">
<input type="submit" value="ok">

PHPoozy
04.07.2008, 20:43
а чекбоксы в таком случае как обзывать?


<input type="checkbox" name="tt[1]" value="">
<input type="checkbox" name="tt[2]" value="">
<input type="checkbox" name="tt[3]" value="">
<input type="submit" value="ok">

Chaak
04.07.2008, 21:54
Как сделать из буквы A буквы B или из А - Б

Т.е прибавить скажим прибавить 1 к букве A и получить B. Или прибавить 2 к A и получить C.

В php такого нету как в C#, так что выручайте ребятки :)
Хочется сделать реализацию декриптовки алгоритма Цезаря.

GreenBear
04.07.2008, 21:56
$c = ord('А');
$c++;
echo chr($c);

Demetra
04.07.2008, 22:16
спосибо буду разбираться.базы я незнаю и двиг на файлах у меня к нему хочу добавить

Chaak
04.07.2008, 22:37
Запутался с циклом :(

Как сделать чтобы через каждые 2 буквы шел знак +?

$g = "";
$n = 0;

for($i = 0; $i < (count($text)); $i += 2)
{
$g .= substr($text,$i,2)."+";
}

echo $g

Помогите пожалуста )


-------------------------------------------------------

Спасибо! не надо уже разобрался. Надо было так:
$g = "";

$text = str_split($text,2);

foreach($text as $tw){
$g .= $tw."+";
}

echo $g;

На100ящий
04.07.2008, 23:38
вы не так поняли....вот есть сайт, чтоб попасть на главную страницу нужно пройти бейсик авторизацию, ввести логин и пасс, вот это мне и нужно сделать с помощью пхп.... мне не нужно вывод окна с просьбой авторизации....кто то знает как это сделать...????

Chaak
05.07.2008, 00:03
вы не так поняли....вот есть сайт, чтоб попасть на главную страницу нужно пройти бейсик авторизацию, ввести логин и пасс, вот это мне и нужно сделать с помощью пхп.... мне не нужно вывод окна с просьбой авторизации....кто то знает как это сделать...????
Насколько я знаю, это окно и есть бейсик авторизация ;)

Jer1cho
05.07.2008, 00:04
При автоизации браузер передает еше один заголовок — "Authorization" такого вида:
Authorization: Basic login:password
Где строка login:password закодированы base64 кодировкой, то есть передать запрос можно, напрмер. через fsockopen/fwrite... думаю сам справишся..

На100ящий
05.07.2008, 00:06
ну так вот у меня есть лог и пароль и мне нужно с помощью пхп ввести это туды и проверить пролшла авторизация или нет..... похоже на брут только без перебора!!!!!!!

На100ящий
05.07.2008, 00:07
Jer1cho , а можно подробней.... сам не смогу....

PHPoozy
05.07.2008, 00:12
На100ящий используй сокеты
$sock = fsockopen($host, $port, $errno, $errstr, 30);
fputs($sock, "GET http://server.ru/ HTTP/1.0\r\n");
fputs($sock, "Host: server.ru\r\n");
fputs($sock, "Authorization: Basic ".base64_encode("")."\r\n\r\n");

ОК

На100ящий
05.07.2008, 00:18
PHPoozy
Где почитать подробно можно??

cash$$$
05.07.2008, 00:29
На100ящий
авторизация на php
<?php

// Данный файл всегда будит "включаться" в другие файлы
// директивой include поэтому следует запретить его самостоятельный вызов
// из строки запроса путём указания его имени
// Если не определена константа IN_ADMIN – завершаем работу скрипта
if(!defined("IN_ADMIN")) die;

// Начинаем сессию
session_start();
// Помещаем содержимое файла в массив
$access = array();
$access = file("access.php");
// Разносим значения по переменным – пропуская первую строку файла - 0
$login = trim($access[1]);
$passw = trim($access[2]);
// Проверям были ли посланы данные
if(!empty($_POST['enter']))
{
$_SESSION['login'] = $_POST['login'];
$_SESSION['passw'] = $_POST['passw'];
}

// Если ввода не было, или они не верны
// просим их ввести
if(empty($_SESSION['login']) or
$login != $_SESSION['login'] or
$passw != $_SESSION['passw'] )

{
?>
<a href="index.php">Вернуться в администрирование гостевой книги</a>
<form action=index.php method=post>
Логин <input class=input name=login value="">
Пароль <input class=input name=passw value="">
<input type=hidden name=enter value=yes>
<input class=button type=submit value="Вход">
<?php
die;
}
?>
Файл с логином и паролем access.php
<?php die; ?>
admin
passw
Теперь следует создать управляющий файл, через который будем получать доступ ко всем остальным файлам.
<?php

// Указываем что данный файл главный,
// определяя константу IN_ADMIN, так как
// нигде больше эта константа не определяется,
// но везде проверяется её существование, работать
// с панелью администрирования можно только
// через файл index.php
define("IN_ADMIN", TRUE);

// Проверяем права доступа
include "auth.php";

// Получаем параметр op из URL
$op = $_GET['op'];

// Выбираем нужное нам действие
switch ($op)
{
case 'main' : include "main.php"; break;
case 'delp' : include "delpost.php"; break;
case 'editform' : include "editcommentform.php"; break;
case 'edit' : include "editcomment.php"; break;
case 'hide' : include "hide.php"; break;
case 'show' : include "show.php"; break;
default : include "main.php";
}
?>
Теперь нужно запретить доступ к остальным скриптам, от прямого вызова.
<?php
if(!defined("IN_ADMIN")) die;
?>
Нужно поменять еще пару строк, чтобы все ссылки заменить на вызов файла index.php.
<?php
if(!$guest['hide']) $showhide = "<a class='menu' href=index.php?op=hide&id_msg=".$guest['id_msg']."&start=$start title='Скрыть сообщение из списка выводимых на сайте'>Скрыть сообщение</a>";
?>
а строки с 63 по 70 заменить на:
<?php
echo "<p class='menu'><a class='menu' href=index.php?op=editform&id_msg=".$guest['id_msg']."&start=$start title='Редактировать сообщение'>Редактировать</a>";
// Ссылка на правку сообщений
echo "&nbsp;&nbsp;".$showhide;
// Ссылка на удаление сообщений
echo "&nbsp;&nbsp;<a class='menu' href=index.php?op=delp&id_msg=".$guest['id_msg']."&start=$start title='Удалить сообщение'>Удалить сообщение</a>";
echo "</p>";
?>
Файл editcommentform.php. Заменить строку 29 на:
<form action=index.php?op=edit method=post>

PHPoozy
05.07.2008, 00:29
_http://php.ru/search/Authorization: Basic
_http://www.mexxs.net/reviews.php?file=58
_http://www.rsdn.ru/Forum/message/2714093.flat.aspx
_http://www.google.com/search?hl=ru&client=opera&rls=ru&q=%22Authorization%3A+Basic%22&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru

Jer1cho
05.07.2008, 00:29
Вот например:

<?php
$login = 'testz'; // логин
$pwd = 'test'; // пароль
$host = 'my.site.com'; // хост

$str = base64_encode("$login:$pwd"); // декодируем в base64

$fo = fsockopen($host, '80', $errno, $errstr, '15'); // открываем сокет
$headers = "GET http://".$host."/asd.php HTTP/1.0\r\n". // путь к скрипту поменяешь
"Host: ".$host."\r\n".
"Authorization: Basic $str\r\n\r\n";

if($fo)
{
fputs($fo, $headers);
$data = '';
while (!feof($fo)) // читаем ответ
{
if (!$data .= fread($fo, 128))
{
$data = "";
}
}
fclose($fo);
}
else
{
echo 'Error.';
}
if(!preg_match("/\b200 OK\b/is", $data)) // проверка на правильность логиан/пароля
{
echo 'Error.';
}
?>

Внятней я объяснить врядли смогу...
Подробно на http://php.net =)

agrofyl2
05.07.2008, 16:04
Здравствуйте. У меня проблема:
Нужно проверить, есть ли в сокете что-нибудь, если нет - возвратить false. Выполнится она должна быстро!
Дело в том, что я хочу считать данные, если они есть, а не ждать, когда она появится и он наконец то ее считает. Помогите плиз!

Chaak
05.07.2008, 16:13
Здравствуйте. У меня проблема:
Нужно проверить, есть ли в сокете что-нибудь, если нет - возвратить false. Выполнится она должна быстро!
Дело в том, что я хочу считать данные, если они есть, а не ждать, когда она появится и он наконец то ее считает. Помогите плиз!

$fp=fsockopen("site.ru.ru",80,$errno,$errstr,10);
if(!fp){
echo "Сокет пуст!";
}else{
//Запись данных
}

DTW
05.07.2008, 16:14
так такой вопрос
из БД вывожу цену
к этой цене мне надо добавить определенный
процент

while($res3 = mysql_fetch_array($res2) )

{



$pros ="2.8";
$price = $res3['product_price'];

$price = $price * $pros ;

print "<p>$price<p>";



}
так не работает он все равно выводит ту цену которая Бз данных

как все таки прибавить?

gisTy
05.07.2008, 16:17
надо было в школе математику учить...
while($res3 = mysql_fetch_array($res2) )

{

$pros ="0.028";
$price = $res3['product_price'];

$price = $price * ($pros + 1) ;

print "<p>$price<p>";

}

Chaak
05.07.2008, 16:20
так такой вопрос
из БД вывожу цену
к этой цене мне надо добавить определенный
процент

while($res3 = mysql_fetch_array($res2) )

{



$pros ="2.8";
$price = $res3['product_price'];

$price = $price * $pros ;

print "<p>$price<p>";



}
так не работает он все равно выводит ту цену которая Бз данных

как все таки прибавить?

У тебя скорее всего стоит запятая в цене т.е к примеру:
54,50
Тогда тебе нужно ее заменить!
Это просто!
while($res3 = mysql_fetch_array($res2) )

{

$pros ="2.8";
$price = $res3['product_price'];
$price = str_replace(",",".", $price);
$price = $price * $pros ;
print "<p>$price<p>";
}
-Это должно работать

agrofyl2
05.07.2008, 16:22
$fp=fsockopen("site.ru.ru",80,$errno,$errstr,10);
if(!fp){
echo "Сокет пуст!";
}else{
//Запись данных
}

Вы неправильно поняли вопрос.

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

gisTy
05.07.2008, 16:23
...
фигасе процент прибавить надо... вот ты посмотри.. получается что ты цену увеличиваешь пости что в три раза... а что бы цену увеличить на 2,8% надо умножить цену на 1,028 т.е. $price = $price * (1 + $pros / 100);
в общем как то так=)

Chaak
05.07.2008, 16:27
фигасе процент прибавить надо... вот ты посмотри.. получается что ты цену увеличиваешь пости что в три раза... а что бы цену увеличить на 2,8% надо умножить цену на 1,028 т.е. $price = $price * (1 + $pros / 100);
в общем как то так=)
Меня попросили модифицировать скрипт а не исправить ошибку в прибавлении. Думаю проблема в запятых.

gisTy
05.07.2008, 16:29
да и кстати... может я чего то не понимаю... но как ты умножаешь строку на число?

PHPoozy
05.07.2008, 16:29
вот формуло ($price / 100) * $proc

gisTy
05.07.2008, 16:36
э.. а эта формула не рулит? $price = $price * (1 + $pros / 100); вроде намного короче получается...

PHPoozy
05.07.2008, 16:38
я периодически(в цикле) считываю данные,
но если их нет, то ПХП ждет, когда они появятся, а мне нужно чтоб он сразу! возвращал false.

while(!feof($sock)) {}

ничего сложного тут нет

agrofyl2
05.07.2008, 16:42
while(!feof($sock)) {}

ничего сложного тут нет

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

PHPoozy
05.07.2008, 16:49
agrofyl2

while(!feof($sock)) {

if(fgets($sock, 1024) == ""){ break; }

}

---

gisTy
05.07.2008, 16:50
$b = fgets($fp);
if ($b !== '') {то что надо сделать если пришли данные на сокет} else {то что надо сделать если данные на сокет не пришли}
первое что в голову пришло

PHPoozy
05.07.2008, 17:03
Кто на ты с регулярками?

agrofyl2
05.07.2008, 17:10
Ладно, спасибо всем кто "помог", думаю тут быстроработающего рещения небудет

GoodGod
05.07.2008, 17:23
Помогите оживить скрипт.


<?
$accsfile = "accs.txt";
$logsfile = "logs.txt";
$host = "vkontakte.ru";
$urlfriends = "/friend.php"; // страница, откуда будем парсить френдов
$urlmail = "/mail.php"; // страница, откуда будем парсить secure-код и рассылать мессаги
$title[] = "Привет!";
$title[] = "Доброго времени дня!";
$message[] = "Как поживаешь?";
$message[] = "привет! Как твои дела?";
set_time_limit(0);
function GetPage($domain, $path, $cookie) { $hostname = gethostbyname($domain);
$responce = "";
$errnum=0;
$errstr="";
$fsock = fsockopen($hostname,80,$errnum,$errstr,5);
if(!$fsock) { return 0; }
$headers = "GET $path HTTP/1.0\r\n". "Host: $domain\r\n". "User-Agent: Mozilla/5.0\r\n". "Accept: */*\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "$cookie". "Connection: close\r\n". "\r\n";
fwrite($fsock,$headers);
while(!feof($fsock)) { $responce .= fread($fsock,1024); } fclose ($fsock);
return $responce; } // статус работы будем выводить в отдельный DIV
function SetStatus($status){
echo "<script>document.getElementById('statusDiv').innerHTML='$s tatus';</script>"; } // лог пишем в файл и по желанию в отдельный DIV (раскоментить echo)
function SetLog($logmsg){ $fp=@fopen($GLOBALS["logsfile"], "a"); fwrite($fp, $logmsg."/r/n"); fclose($fp); //
echo "<script>document.getElementById('logDiv').innerHTML = '".$logmsg."<br>'+ document.getElementById('logDiv').innerHTML;</script>";
SetStatus($logmsg); }
function SendMail($from_id, $to_id, $t, $msg){ SetLog("SendMail $from_id:$to_id:$t:$msg"); // достаём secure
$mailpage = GetPage($GLOBALS["host"], $GLOBALS["urlmail"]."?act=write&to=".$to_id, $GLOBALS["logincookies"][$from_id]); preg_match_all('/name="secure" value="(\w+)/', $mailpage, $mailsecure); foreach ($mailsecure[1] as $sss) {$secure=$sss;} SetLog("Parsed secure-code from ".$from_id." to ".$to_id.": ".$secure); // формируем post-запрос отправки
$post="secure=$secure&photo=&to_id=$to_id&to_reply=0&act=sent&title=$t&message=$msg";
$len = strlen($post); $query = "POST ".$GLOBALS["urlmail"]." HTTP/1.1\r\n". "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322; .NET CLR 2.0.50215)\r\n". "Host: ".$GLOBALS["host"]."\r\n". $GLOBALS["logincookies"][$from_id]. "Content-Type: application/x-www-form-urlencoded\r\n". "Connection: close\r\n". "Content-Length: $len\r\n". "\r\n". "$post";
$conn = fsockopen($GLOBALS["host"], 80, $errno, $errstr, 1000); fputs($conn, $query);
while (!feof($conn)) { $ss = fgets($conn, 128); } }
$fp=@fopen($accsfile,"r");
while(!feof($fp)){ $account = trim(fgets($fp));
$ac = explode(":", $account);
$id = $ac[0];
$email = $ac[1];
$md5 = md5($ac[2]);
$accs[] = $id;
$logincookies[$id] = "Cookie: remixchk=2; remixmid=$id; remixemail=$email; remixpass=$md5\r\n"; }fclose($fp);
$maxsize = 0;
foreach ($accs as $curracc){ $currfriendspage = GetPage($host, $urlfriends, $logincookies[$curracc]); preg_match_all("/write&to=(\w+)/", $currfriendspage, $currfriends);
foreach ($currfriends[1] as $currfriend){ $friends[$curracc][] = $currfriend; }
$currsize = sizeof($friends[$curracc]);
if ($currsize>$maxsize) $maxsize = $currsize; }
echo "<table id='tableFr' border=1 cellspacing=0 cellpadding=0>". "<tr id='trFr0'>". "<td id='tdFr0_0'></td>";
for ($i=1;$i<=$maxsize;$i++) { echo "<td id='tdFr0_$i'>Friend$i</td>";};
echo "</tr>";
$n=1;
foreach ($accs as $curracc){ echo "<tr id='trFr$n'>";
echo "<td id='tdFr".$n."_0'>id$curracc</td>";
for ($i=0;$i<sizeof($friends[$curracc]);$i++) { echo "<td id='tdFr".$n."_".($i+1)."'>".$friends[$curracc][$i]."</td>";};
for ($i=$i;$i<$maxsize;$i++) {echo "<td id='tdFr".$n."_".($i+1)."'>_</td>";};
echo "</tr>"; $n++; } echo "</table>". "<div style='border-width:1;border:1;color:#0000FF' id='statusDiv'></div><br>". "<div id='logDiv'></div>";
for($i=0;$i<$maxsize;
$i++){ for($j=0;$j<sizeof($accs);
$j++){ if ($i<sizeof($friends[$accs[$j]])) {
echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor = '#0000FF';</script>";
SetStatus("Sending from ".$accs[$j]." to ".$friends[$accs[$j]][$i]);
SendMail($accs[$j], $friends[$accs[$j]][$i], $title[$%2], $message[$i%2]);
echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor='#00FF00';<script>"; }} sleep(1); }
?>


Выдает ошибку
Parse error: syntax error, unexpected '%', expecting T_VARIABLE or '$' ... on line 60

PHPoozy
05.07.2008, 17:29
на 60 строке (SendMail($accs[$j], $friends[$accs[$j]][$i], $title[$%2], $message[$i%2]);)

переменная не должна содержать ничего кроме латиницы цифр и подчеркивания

ЗАПОМНИ!

MafiaBoy3
05.07.2008, 18:02
Как мне сделать регистрацию на сайте?
Может у кого нибудь есть готовые скрипты (готовые решения на php) для реализации:
Регистрации пользователя, входа и выхода пользователя (логина, логаута).

PS: GOOGLE не помог выдал треш, да и готовых решений совсем не было, статьи на эту тему безобразные.

Jer1cho
05.07.2008, 19:24
Как мне сделать регистрацию на сайте?
Может у кого нибудь есть готовые скрипты (готовые решения на php) для реализации:
Регистрации пользователя, входа и выхода пользователя (логина, логаута).

PS: GOOGLE не помог выдал треш, да и готовых решений совсем не было, статьи на эту тему безобразные.
Вобщем делать мне было не чего =), написал два небольших скрипта, ошибок в них куча но всеже:
Файл register.php:

<html>
<head><title>Регистрация</title></head>
<body><p align="left"><?php session_start(); if($_SESSION['login']){ echo 'Вы вошли как:'.$_SESSION['login'].' <a href="./login.pph?mode=logout">Logout</a>'; } else { echo 'Вы не выполнили <a href="./login.php">вход</a>.'; } ?></p>
<form method="post" action="">
<table cellspacing="0" border="0" align="center">
<tr><td>Имя: <input type="text" name="name"></td></tr>
<tr><td>Пароль: <input type="password" name="password"></td></tr>
<tr><td>E-Mail: <input type="text" name="email"></td></tr>
<tr><td><input type="submit" value="Зарегистрироваться" name="doit"></td></tr>
</tr>
</table>
</form>
<?php
include('cfg.php');
session_start();
$name = mysql_escape_string($_POST['name']);
$pwd = mysql_escape_string($_POST['password']);
$email = mysql_escape_string($_POST['email']);
if($_POST['doit']){
$r = mysql_query("SELECT * FROM `users` ORDER by `id`");
$n = mysql_num_rows($r);
if($n > 0)
{
for($i = 0; $i < $n; $i++)
{
$row = mysql_fetch_array($r);
}}
$id = $row['id'] + 1;

$q = "INSERT INTO `users` VALUES($id,'".$name."','".$pwd."','".$email."')";
if(mysql_query($q))
{
echo '<script>alert("Регистрация завершена.");</script>';
} else { exit('Error'.mysql_error()); }
}
?>
</body>
</html>


Файл login.php:

<html>
<head>
<title>Авторизация</title>
</head>
<body><p align="left"><?php session_start(); if($_SESSION['login']){ echo 'Вы вошли как:'.$_SESSION['login'].' <a href="./login.pph?mode=logout">Logout</a>'; } else { echo 'Вы не выполнили <a href="./login.php">вход</a>.'; } ?></p>
<form method="post" action="">
<table cellspacing="0" border="0" align="center">
<tr><td>Логин: <input type="text" name="login"></td></tr>
<tr><td>Пароль <input type="text" name="password"></td></tr>
<tr><td><input type="submit" name="doit"></td></tr>
</table>
</form>
</body>
</html>
<?php
include('cfg.php');
$login = mysql_escape_string($_POST['login']);
$pwd = mysql_escape_string($_POST['password']);


if($_GET['mode']=='logout')
{
setcookie('name', '');
setcookie('password', '');
session_destroy();
echo "Вы вышли.";
}
if($_POST['doit'])
{
$q = "SELECT * FROM `users` WHERE `username` = '".$login."' AND `userpassword` = '".$pwd."'";
$r = mysql_query($q);
if(mysql_num_rows($r))
{
$_SESSION['login'] = $login;
$_SESSION['pwd'] = $pwd;
setcookie('name', $_SESSION['login'], time()+ 86400 * 30 * 12, '', false, 0);
setcookie('password' , $_SESSION['pwd'], time()+ 86400 * 30 * 12, '', false, 0);
} else { echo 'Неверный пароль/логин. '; }
}
?>


cfg.php:

<?php
error_reporting('0');
$mysqlc = mysql_connect('localhost','root','test');
if(!$mysqlc){ die(mysql_error()); }
mysql_select_db('data');
?>


Думаю объяснять что каждый срипт делает не надо.

Создаш БД data, выполнишь этот запрос:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) NOT NULL,
`username` varchar(15) NOT NULL,
`userpassword` varchar(20) NOT NULL,
`useremail` varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `users` (`id`, `username`, `userpassword`, `useremail`) VALUES
(1, 'test', 'test', 'test@gmail.com');

первый пользователь это test c паролем test

Думаю принцип поймешь, если разбираешся и дaльше сам уже...

PHPoozy
05.07.2008, 19:39
и не забудь поставить фильтрацию

GoodGod
05.07.2008, 22:15
Товарищи, не мог ли кто-нибудь из вас доработать скрипт мною вышеуказанный.
Я в php мало что понимаю и самому что-то там исправлять, даже зная что, как показала практика - безрезультатно. Кто знает как оживить, подправьте пожалуйста и выложите. Заранее спасибо.

Nek1t
05.07.2008, 22:22
Хех, а как прикрутить к своему скрипту поддержку прокси? Ну т.е. чтобы всякие там file_get_contents и т.д. пускать через прокси?

5triker
06.07.2008, 10:25
http://php.net/fsockopen

MafiaBoy3
06.07.2008, 10:41
После запуска скрипта получил такой подарок, кто знает что это?

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Давно использую сессии в своих проектах, но такое вижу ПЕРВЫЙ раз!
У меня стоит Denver последней версии на холакосте.

Как сделать всё чисто?

PHPoozy
06.07.2008, 10:59
MafiaBoy3 переименуй имена переменных в глобальных те в $_SESSION используются одни и те же переменные

MafiaBoy3
06.07.2008, 11:06
Не понял

PHPoozy
06.07.2008, 11:09
короче это связано с register_globals

MafiaBoy3
06.07.2008, 11:10
У меня register_globals OFF

xxxxxxxxxxxxxxx
06.07.2008, 11:40
нужен очень пример скрипта : дано поле <input type="text" name="" value="">

в него надо ввести любой исходный код и чтоб скрипт удалил с него все коментарии типа // и /* */

PHPoozy
06.07.2008, 13:50
нужен очень пример скрипта : дано поле <input type="text" name="" value="">

в него надо ввести любой исходный код и чтоб скрипт удалил с него все коментарии типа // и /* */

вот простой обработчик:

<?php

$code = '<?php
$code = ""; //444444444
/*
$param = "p";
*/

print 1;

?>';
$code = preg_replace("|\/\/.*\r\n|", "", $code);

$code = preg_replace("|\/\*.*\r\n|", "", $code);

$code = ereg_replace("\r\n.*\*\/", "", $code);

print $code;

?>

agrofyl2
06.07.2008, 15:39
Такс, я понял что мне нужно - нужно задать таймаут fgets. Есть такое в PHP???
Thanks/

PHPoozy
06.07.2008, 15:42
agrofyl2 sleep(sec);

agrofyl2
06.07.2008, 16:28
agrofyl2 sleep(sec);

Как ты меня замучал!!!!! Честное слово!

PHPoozy
06.07.2008, 16:43
agrofyl2 ты хоть опиши подробно

Кубик Рубик
06.07.2008, 16:58
Всем привет! У меня возникли проблемы при создании БД.
php мне ответил вот что:
Fatal error: Call to undefined function mysql_create_db() in D:\programs\webserv\www\sql.php on line 8
Помоему все правильно в 8 строке?

<?php
$dbname = "testbd";
$host = "localhost";
$user = "root";
$password = "root";
$mysqlconnect =mysql_connect($host,$user,$password); if(mysql_create_db($dbname,$mysqlconnect))
{
$message = "<br><font color=\"green\">БД успешно создана!</font>";
} else {
$message = "<br><font color=\"red\">БД создать не удалось!</font>";
} echo "$message";
?>
:confused:

Может сервак не разрешает БД создать? Хотя работаю на локалке.

PHPoozy
06.07.2008, 17:01
mysql_create_db($dbname, $mysqlconnect); - так запашет

---

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

Кубик Рубик
06.07.2008, 17:18
не работает( с коннектом все норм.

PHPoozy
06.07.2008, 17:22
не работает( с коннектом все норм.

ты поставил пароль на базу? хмм странно...

---

по умолчанию user = root пароль отсутствует

Кубик Рубик
06.07.2008, 17:32
да там вообще другой пас просто я его сменил когда редактировал

Кубик Рубик
06.07.2008, 17:36
Помоему я все правильно написал?! =\

PHPoozy
06.07.2008, 18:35
Кубик Рубик у тебя какая версия пхп стоит???

gisTy
06.07.2008, 18:36
э.. почитай что тебе пхп отвечает.. невозможно вызвать несуществующую функцию mysql_creat_db ... почитай маны по версии мускула которая у тебя установлена, почитай маны по пхп, почитай.. вот что написано по поводу этой функции mysql_create_db
(PHP 3, PHP 4)

...

Примечание: функция mysql_create_db() не рекомендуется для использования. Предпочтительнее использовать mysql_query() для реализации запроса SQL CREATE DATABASE.читай маны по MySQL...

art2222
06.07.2008, 18:50
Привет всем!
Есть вопрос, чего то я не могу врубиться.
Вот к примеру есть файлик index.php
<?php
session_start();
$_SESSION['text']='aabb';
header('location: a.php');
?>
И файл a.php
<?php
echo $_SESSION['text'];
?>
Должно выводиться "aabb" но ничего нет, и при проверке session_is_registered выдает false. Помогите разобраться.
-------------------
Не работает и в денвере и на хостинге

zythar
06.07.2008, 18:56
попробуй по ссылке сам переходить.

Кубик Рубик
06.07.2008, 18:57
Кубик Рубик у тебя какая версия пхп стоит???
5.2.5 :)
gisTy - спс)) хотя пишу по книге где php5 разбирается...

gisTy
06.07.2008, 19:00
gisTy - спс)) хотя пишу по книге где php5 разбирается... читай так же еще описание на сайтах.. например на php.su есть довольно большое описание функций.. так же юзай поисковик.. тот результат, что я нашел - это первая строка которую мне выдал яндекс по запросуmysql_creat_db
в общем удачи=))

art2222
06.07.2008, 19:00
попробуй по ссылке сам переходить.
Все равно не пашет

.Slip
06.07.2008, 19:06
>> Должно выводиться "aabb" но ничего нет
Ничего не должно. Это два независимых скрипта. От скрипта index.php не отправляется никаких данных, а скрипт a.php ничего не принимает.

PHPoozy
06.07.2008, 19:07
<?php
session_start();
echo $_SESSION['text'];
?>

вот теперь пробуй

art2222
06.07.2008, 19:09
PHPoozy
Спасибо! помогло=)

MafiaBoy3
06.07.2008, 20:34
У меня вот задача!

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

GreenBear
06.07.2008, 21:05
У меня вот задача!

Нужно принять от пользователя адрес урл через форму.
А как его грамотно обработать на наличие опасных символов и сохранить в базе данных Mysql?
http://regexlib.com/Search.aspx?k=&c=2&m=-1&ps=20

MafiaBoy3
07.07.2008, 08:25
if(!preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i',$_POST['story_url']))
{

}

Не могу понять, что здесь происходит?

Chaak
07.07.2008, 08:45
if(!preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i',$_POST['story_url']))
{

}

Не могу понять, что здесь происходит?
Здесь стоит условие, в котором, если $_POST['story_url'], не является ССЫЛКОЙ то функция вернет false

MafiaBoy3
07.07.2008, 09:17
if(!isset($_SESSION['dugg'][$info['story_id']]))
{
if(isset($story_where))
{
$story_where.= " OR story_id='".$info['story_id']."'";
}
else
{
$story_where = "story_id='".$info['story_id']."'";
}
}

if(!isset($_SESSION['bury'][$info['story_id']]))
{
if(isset($story_where2))
{
$story_where2.= " OR story_id='".$info['story_id']."'";
}
else
{
$story_where2 = "story_id='".$info['story_id']."'";
}
}
}


Тоже непонятно! Что здесь?

Chaak
07.07.2008, 09:19
if(!isset($_SESSION['dugg'][$info['story_id']]))
{
if(isset($story_where))
{
$story_where.= " OR story_id='".$info['story_id']."'";
}
else
{
$story_where = "story_id='".$info['story_id']."'";
}
}

if(!isset($_SESSION['bury'][$info['story_id']]))
{
if(isset($story_where2))
{
$story_where2.= " OR story_id='".$info['story_id']."'";
}
else
{
$story_where2 = "story_id='".$info['story_id']."'";
}
}
}


Тоже непонятно! Что здесь?
Здесь вроде проверка какойто сессии на содержимое и составление SQL запроса вроде...

spamoney
07.07.2008, 13:21
Всем привет! Помогите решить такую проблему:

допустим есть текст: <td align="right">Текст бла бла press right button</td><img src="/right.gif" /> текст текст трам парам

Нужно сделать так, что бы слово right заменилось на <strong>right</strong>, НО также необходимо чтобы слово right, которое идёт в html тэгах ни на что не заменялось, т.е строку которая выше необходимо заменить на:

<td align="right">Текст бла бла press <strong>right</strong> button</td><img src="/right.gif" /> текст текст трам парам

PHPoozy
07.07.2008, 13:27
$code = '<td align="right">Текст бла бла press right button</td><img src="/right.gif" /> текст текст трам парам';

<?php

$code = '<td align="right">Текст бла бла press right button</td><img src="/right.gif" /> текст текст трам парам';

$code = str_replace("right", "<strong>right</strong>", $code);
$code = ereg_replace("\"<strong>right</strong>\"", "right", $code);

print $code;

?>

spamoney
07.07.2008, 13:30
$code = '<td align="right">Текст бла бла press right button</td><img src="/right.gif" /> текст текст трам парам';

$code = str_replace("right", "<strong>right</strong>", $code);

print $code;

)) пасиб конеш, но это совсем не то, при выполнении вашего кода текст измениться так:
<td align="<strong>right</strong>">Текст бла бла press <strong>right</strong> button</td><img src="/<strong>right</strong>.gif" /> текст текст трам парам
а нужно так:

<td align="right">Текст бла бла press <strong>right</strong> button</td><img src="/right.gif" /> текст текст трам парам

PHPoozy
07.07.2008, 13:33
поправил )

spamoney
07.07.2008, 13:42
PHPoozy, +1 и еще раз спасибо, но текст будет всегда разный, и текст возможно будет такой: <td align="right">Текст бла бла press "right" button</td><img src="/right.gif" /> текст текст трам парам тогда ваш код работать не будет..((

Я пробывал перед заменой вырезать все тэги функцией strip_tags, тогда всё работает как надо, но уже без тэгов ((...
Может как нибудь всё же можно это реализовать??

PHPoozy
07.07.2008, 13:51
еще можно вот так:


<?php

$code = '<td align="right">Текст бла бла press right button</td><img src="/right.gif" /> текст текст трам парам';

$code = ereg_replace("\ right\ ", " <strong>right</strong> ", $code);

print $code;

?>

spamoney
07.07.2008, 13:54
если : $code = '<td align="right">Текст бла бла press-"right" button</td><img src="/right.gif" /> "right" текст текст "right" трам парам'; , то не работает...

PHPoozy
07.07.2008, 14:08
ну тогда вот:

<?php

$code = '<td align="right">Текст бла бла press "right" button</td><img src="/right.gif" /> текст текст трам парам';

$code = ereg_replace("\-\"right\"", " <strong>right</strong> ", $code);
$code = ereg_replace("[^=]\"right\"", " <strong>right</strong> ", $code);
$code = ereg_replace("[^=]\ \"right\"\ ", " <strong>right</strong> ", $code);
$code = ereg_replace("\-\"right\"\-", " <strong>right</strong> ", $code);

print $code;

?>

spamoney
07.07.2008, 14:18
$code = '<td align="right">Текст бла бла press- right button</td><img src="/right.gif" /> текст текст "right" трам парам';

так не работает..(
А можно сделать как нибудь так: если фрагмент текста заключен в < >, т.е |<(*)right(*)>|U то ничего не меняем, если же не заключен в < > то меняем и так для всего текста??

GreenBear
07.07.2008, 14:31
<?php
$text = '<td align="right">Текст бла бла press- right button</td><img src="/right.gif" /> текст текст "right" трам парам';
$text = preg_replace('/[^="\'](("|\'|=|)right("|\'|=|))[^"\.\']/i', '<strong>\\1</strong>', $text);
echo $text;
?>

PHPoozy
07.07.2008, 15:12
вот мой вариант:

<?php

$code = '<td align="right">Текст бла бла press -"right" button</td><img src="/right.gif" /> текст текст трам парам';

$code = preg_replace("|[\s]*.*[\s]*>([^<]*)<[\s]*\/.*[\s]*>|i", "\\1", $code);

$code = preg_replace("#([\"|\'|=|-|_|.]right[\"|\'|=|-|_|.])#i", "<strong>\\1</strong>", $code);

print $code;

?>

GreenBear
07.07.2008, 15:14
у тебя все теги вырежет.

PHPoozy
07.07.2008, 15:22
GreenBear ну я специально так сделал для спамера самое то

spamoney
07.07.2008, 16:20
GreenBear, работает, но немного не так, заменяет "right" на <strong>"right"</strog>, хотя нужно "<strong>right</strong>"

да и если html тэги попадаются с пробелом (иногда случается) $code = '<td align = "right">Текст бла бла press -"right" button</td><img src="/right.gif" /> текст текст трам парам'; то тоже не работает...(

PHPoozy, не, не спамер )) это мне нужно что бы в тексте автоматом выделялись ключевые слова....html тэги, можно было бы вырезать функцией strip_tags ;) но дело в том что как раз то их мне менять и не надо...

MafiaBoy3
07.07.2008, 17:37
Как мне сделать категории (разделы) на моём сайте?

Тоесть заходишь на mysite.com далее в headere кликаешь на одну из ссылок категории (так на многих сайтах)

Sex Porno Anal ...

И попадаешь соответственно на:

mysite.com/sex
mysite.com/porno
mysite.com/anal

А на этих страницах выводился бы результат работы php-scripta с Mysql

m0nsieur
07.07.2008, 17:47
Возможно так решить:
ссылку вида mysite.com/sex, помещаешь в отдельную форму и добавляешь hidden параметр на форму со значением например sex и остальные аналогично, когда форма сабмитится, проверяется эта скрытая переменная, если она равна sex то делаешь соответствующую выборку и с остальными параметрами аналогично.

MafiaBoy3
07.07.2008, 17:48
да зачем форма нужна? Тут легче.

m0nsieur
07.07.2008, 17:49
Тогда в чем проблема? И разве форма настолько усложняет задачу?

MafiaBoy3
07.07.2008, 17:54
да ты непонял!
Зайди на digg.com. Там вверху header, в нём категории Science, Gaming и т.д.

Переходишь по gaming и попадаешь на digg.com/gaming

Вот такую фишку мне точь-в-точь сделать надо!

Naydav
07.07.2008, 18:04
m0nsieur
Тогда в чем проблема? И разве форма настолько усложняет задачу?
Навигация через отправку формы? ну-ну...
я бы сказал как это называеться

MafiaBoy3
в .htacсess - пишешь


RewriteEngine on
Options +FollowSymlinks

RewriteRule ^(.*)/$ index.php?action=$1 [L]

В индексе обрабатываешь, $_GET['action']
При ссылке mysite.com/games/, $_GET['action'] будет равно "games"

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

подробно
_http://phpclub.ru/detail/article/2001-01-16

MafiaBoy3
07.07.2008, 18:07
Помогите пожалуйста! Не надо никакой формы. С чего вы взяли, разве на диге есть форма для навигации?

Naydav
07.07.2008, 18:09
MafiaBoy3
Ты читать умеешь????
Подыми глаза на один пост!!!