PHP, CSS, JavaScript, XHTML - есть вопросы?

Форум для программистов

Сообщение Night Angel » Пт авг 22, 2003 8:17 pm

попробовать во-певых fopen($url,"rb")
во-вторых eregi($start."(.*)".$ends,fread($file,200000),$data)

У меня тут заработало чудо на eregi_replace но оно вырезает всё между САМЫМ первым <ul style=... и САМЫМ последним </ul>

В принципе в той статье есть оговорка, что перловые реги работают в 10-30 раз быстрее, если фрагмент, соответствующий шаблону, встречается в строке, а вот ели его нет, то...
Последний раз редактировалось Night Angel Пт авг 22, 2003 8:50 pm, всего редактировалось 1 раз.
Auscultura et perpende - Выслушай и взвесь
Теперь я есть в <a href='http://www.livejournal.com/users/mrnight/' target='_blank'>LJ</a>
Night Angel
Полковник
 
Сообщений: 1160
Зарегистрирован: Ср сен 25, 2002 7:20 pm
Откуда: Belarus
Пункты репутации: 0

Сообщение Миша Спларов » Пт авг 22, 2003 8:29 pm

2SiMM
<!--emo&:)-->Изображение<!--endemo--> Я только preg и использую.
«Проектирование интерфейсов — увлекательный дизайнерский процесс. Схожее удовольствие можно получить от сложной верстки, от создания многомерных схем и решения других задач на логику и эстетику». (q) A. Лебедев
Миша Спларов
Генерал-лейтенант
 
Сообщений: 3022
Зарегистрирован: Пн апр 22, 2002 7:58 am
Откуда: Россия, Томск
Пункты репутации: 0

Сообщение SiMM » Сб авг 23, 2003 8:14 pm

<!--QuoteBegin--Night Angel+Aug 23 2003, 00:17--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (Night Angel @ Aug 23 2003, 00:17)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->попробовать во-певых fopen($url,"rb")<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->Во-первых, про "во-первых" - ноги растут не оттуда <!--emo&:)-->Изображение<!--endemo--> - файл-то нормально считывается, и eregi, в общем-то, работает (только заставить его работать так, как хотелось бы - не удалось - ну и ладно, чёрт с ним, в перловских регэкспах возможностей куда больше). <!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->во-вторых eregi($start."(.*)".$ends,fread($file,200000),$data)<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->А во вторых - было нужно именно между САМЫМ первым <ul style=... и САМЫМ первым </ul> - т.е. квантификатор нужен именно жадный. Данный же регэксп работает точно так же, как и "$start(.*)$ends"

Появилась ещё одна сложность, если код
$page = fopen("http://localhost/test.htm", "r");
$content=fread($page, 200000);
работает на ура, то при замене параметра fopen на "http://213.24.222.133/main.asp?govid=61" почему то каждый раз скачивается ровно 1448 байт - остальные данные куда-то теряются, соответственно о дальнейшей нормальной работе скрипта не может быть и речи. Возможно, всё дело в настройках php или сервера, однако куда копать (в какие настройки) - не понятно. В принципе, подойдёт любой другой разумный способ "скачки" странички на php.
Последний раз редактировалось SiMM Вс авг 24, 2003 1:25 pm, всего редактировалось 1 раз.
IRC: <a href='http://www.fileforum.ru/irc.php' target='_blank'>RUSNET #fileforum</a> (irc.tsk.ru:6669)
SiMM
Подполковник
 
Сообщений: 588
Зарегистрирован: Чт июн 13, 2002 8:41 am
Пункты репутации: 0

Сообщение ita » Вт авг 26, 2003 6:17 am

2SiMM
а что скачивается? хоть нужная страничка или чето типа 403, 404.. ?
можно попробовать:
file()
fsockopen()
Последний раз редактировалось ita Вт авг 26, 2003 6:18 am, всего редактировалось 1 раз.
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение SiMM » Вт авг 26, 2003 8:14 am

2ita, скачивается страничка, т.е. её первые 1448 байт - остальное теряется. При чём - хостозависимо (т.е. на одном хостинге - работает, на другом - нет), посему хотелось бы знать - может кто сталкивался с подобным и как лечил?
<span style='font-size:7pt;line-height:100%'>Проблема разрешилась при помощи костылей <!--emo&:)-->Изображение<!--endemo-->
Код: выделить все
function my_fread($fp){
 $str='';
 while(!feof($fp))
   $str.=fread($fp,1024);
 return $str;
}
</span>Ещё появился вопрос к знатокам: с некоторого урл пытаемся скачать файл размером 300 Кб командой fread($page, 20*1024) - каков скачанный траффик? И для всех ли случаев допустимо использовать fread($page,filesize($page))? Не будет ли при этом страничка скачана дважды (1й раз по filesize и второй по fread, хотя, возможно, это кэшируется)?
<span style='font-size:7pt;line-height:100%'>Вопрос был задан не просто так - ведь $page может быть динамически изменяющейся страничкой - впрочем, если она всё же кэшируется - то это хорошо <!--emo&:)-->Изображение<!--endemo--> Но в доке это не оговаривается</span>
Последний раз редактировалось SiMM Вт сен 09, 2003 10:32 am, всего редактировалось 1 раз.
IRC: <a href='http://www.fileforum.ru/irc.php' target='_blank'>RUSNET #fileforum</a> (irc.tsk.ru:6669)
SiMM
Подполковник
 
Сообщений: 588
Зарегистрирован: Чт июн 13, 2002 8:41 am
Пункты репутации: 0

Сообщение sserg » Вт авг 26, 2003 8:48 am

2all: не работает ф-ция mb_convert_encoding(), типа пишет нет такой функции, как её подключать ?
Последний раз редактировалось sserg Вт авг 26, 2003 8:49 am, всего редактировалось 1 раз.
sserg
Ст. сержант
 
Сообщений: 40
Зарегистрирован: Ср сен 04, 2002 12:04 pm
Пункты репутации: 0

Сообщение ita » Вт авг 26, 2003 10:54 am

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->fread($page,filesize($page)) <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
скачана дважды думаю не будет - filesize просто просто получает размер файла а саму страницу не качает.
попробуй всетаки fsokopen и file.
file вроде размер не требует(лень доки смотреть <!--emo&:)-->Изображение<!--endemo--> ), только потом все, что получил из массива в строку придется объеденить.
fsockopen - тут можно страничку слить которая реферы проверяет, куки.. только нужно первоначальный запрос сделать правильно.
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение Миша Спларов » Вт авг 26, 2003 3:10 pm

2sserg
А эта доп. библ. вроде нужна. Посмотри руководство. Ссылка выше.
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->file вроде размер не требует<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
<!--emo&:)-->Изображение<!--endemo--> Не требует - точно.
«Проектирование интерфейсов — увлекательный дизайнерский процесс. Схожее удовольствие можно получить от сложной верстки, от создания многомерных схем и решения других задач на логику и эстетику». (q) A. Лебедев
Миша Спларов
Генерал-лейтенант
 
Сообщений: 3022
Зарегистрирован: Пн апр 22, 2002 7:58 am
Откуда: Россия, Томск
Пункты репутации: 0

Сообщение Night Angel » Вт авг 26, 2003 8:30 pm

<!--QuoteBegin--SiMM+Aug 22 2003, 14:04--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (SiMM @ Aug 22 2003, 14:04)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> test.htm содержит текст следующего содержания
...
<ul class="listitem">
необходимый для вырезания текст
</ul>
<ul class="listitem">
ещё всякий мусор
</ul>
...
Мне необходимо вырезать "необходимый для вырезания текст" ("без всякого мусора") <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
Если всё действительно так, то почему бы не сделать
Код: выделить все
$page = 'tes2.txt';
$starts = '<ul class="listitem">';
$ends = '</ul>';
$fc = implode('',file($page));
$s = substr($fc, strpos($fc,$starts)+strlen($starts), strpos($fc,$ends)-strpos($fc,$starts)-strlen($starts));
echo $s;
Auscultura et perpende - Выслушай и взвесь
Теперь я есть в <a href='http://www.livejournal.com/users/mrnight/' target='_blank'>LJ</a>
Night Angel
Полковник
 
Сообщений: 1160
Зарегистрирован: Ср сен 25, 2002 7:20 pm
Откуда: Belarus
Пункты репутации: 0

Сообщение Миша Спларов » Ср авг 27, 2003 2:19 pm

2Night Angel
Интересный способ. Интресно по времени он дольше или быстрее выполняется, чем regexp
«Проектирование интерфейсов — увлекательный дизайнерский процесс. Схожее удовольствие можно получить от сложной верстки, от создания многомерных схем и решения других задач на логику и эстетику». (q) A. Лебедев
Миша Спларов
Генерал-лейтенант
 
Сообщений: 3022
Зарегистрирован: Пн апр 22, 2002 7:58 am
Откуда: Россия, Томск
Пункты репутации: 0

Сообщение Night Angel » Ср авг 27, 2003 8:24 pm

Регекспы выполняются гораздо медленее чем str_replace() или substr(). Это по-моему даже в мануале написано.
Auscultura et perpende - Выслушай и взвесь
Теперь я есть в <a href='http://www.livejournal.com/users/mrnight/' target='_blank'>LJ</a>
Night Angel
Полковник
 
Сообщений: 1160
Зарегистрирован: Ср сен 25, 2002 7:20 pm
Откуда: Belarus
Пункты репутации: 0

Сообщение Миша Спларов » Чт авг 28, 2003 9:26 am

2Night Angel
Это понятно, но когда их много (str_replace и substr) расклад может быть другим
«Проектирование интерфейсов — увлекательный дизайнерский процесс. Схожее удовольствие можно получить от сложной верстки, от создания многомерных схем и решения других задач на логику и эстетику». (q) A. Лебедев
Миша Спларов
Генерал-лейтенант
 
Сообщений: 3022
Зарегистрирован: Пн апр 22, 2002 7:58 am
Откуда: Россия, Томск
Пункты репутации: 0

Сообщение Night Angel » Чт авг 28, 2003 9:50 am

Ща проверим :-)
<span style='font-size:8pt;line-height:100%'>Добавлено</span>
Если поменять код вот так
Код: выделить все
$p1 = strpos($fc,$starts) + strlen($starts);
$s = substr($fc, $p1, strpos($fc,$ends)-$p1);
То работать начинат ещё быстрее. тут ведь всё от программера зависит.

2Max Drowdy
Я тебе в ПМ скину код для сравнения скорости.
Последний раз редактировалось Night Angel Чт авг 28, 2003 10:50 am, всего редактировалось 1 раз.
Auscultura et perpende - Выслушай и взвесь
Теперь я есть в <a href='http://www.livejournal.com/users/mrnight/' target='_blank'>LJ</a>
Night Angel
Полковник
 
Сообщений: 1160
Зарегистрирован: Ср сен 25, 2002 7:20 pm
Откуда: Belarus
Пункты репутации: 0

Сообщение Миша Спларов » Чт авг 28, 2003 11:04 am

2Night Angel
Спасибо, но он мне не нужен, т.к. это беспроблемная задача и я её уже давно решил (нужна была для тестирования скорости выполнения preg).
«Проектирование интерфейсов — увлекательный дизайнерский процесс. Схожее удовольствие можно получить от сложной верстки, от создания многомерных схем и решения других задач на логику и эстетику». (q) A. Лебедев
Миша Спларов
Генерал-лейтенант
 
Сообщений: 3022
Зарегистрирован: Пн апр 22, 2002 7:58 am
Откуда: Россия, Томск
Пункты репутации: 0

Сообщение ita » Пт сен 05, 2003 6:53 am

Код: выделить все
<script>
function checkIt() {
theGroup = document.theForm.gender;
for (i=0; i<= theGroup.length; i++) {
if (theGroup[i].checked) {
alert("The value is " + theGroup[i].value);
break;
}
}
}
</script>
<form name='theForm'>
<input type=radio name="gender" value="Male">Male<br>
<input type=radio name="gender" value="Female">Female<br>
<input type=radio name="gender" value="Evasive">Not Specified<br>
<input type="button" onclick="checkIt();" value="Check">
</form>

но он выдает ошибку если ничего не выбрано. нашел 2 пути лечения, но один не подходит, второй не нравится <!--emo&:(-->Изображение<!--endemo-->
1 - выбрать что-то по умолчанию - нельзя
2 - сделать еще одно поле radio, сделать его невидимым и выбраным
Код: выделить все
<input type="radio" name="gender" value="n" checked style="visibility: hidden;">
и добавить еще одну проверку на значение - мне такой вариант не нравится.
что можете предложить?
Последний раз редактировалось ita Пт сен 05, 2003 6:54 am, всего редактировалось 1 раз.
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Пред.След.

Вернуться в Программирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

cron