PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 11
Tiger
Отправлено: 14 Сентября, 2011 - 21:43:08 • Тема: Сокращение записи • Форум: Регулярные выражения
Ответов: 2 Просмотров: 182
Спасибо большое, идем дальше.
PHP:
скопировать код в буфер обмена
preg_match_all ( "/<h1>(.*)<\/h1>/" , $content , $title , PREG_PATTERN_ORDER
) ; preg_match_all ( "/<h2>Регион<\/h2>\n \s+(.*)<br>/" , $content , $region , PREG_PATTERN_ORDER
) ; preg_match_all ( "/<h2>Адрес<\/h2>\n \s+(.*)<br>/" , $content , $adress , PREG_PATTERN_ORDER
) ; preg_match_all ( "/<h2>Телефоны<\/h2>\n \s+(.*)<br>/" , $content , $tel , PREG_PATTERN_ORDER
) ; preg_match_all ( "/<h2>Сайт<\/h2>\n \s+<noindex><a href=\" .*\" >(.*)<\/a><\/noindex><br>/" , $content , $www , PREG_PATTERN_ORDER
) ; preg_match_all ( "/<h2>Электронная почта<\/h2>\n \s+(.*)<br>/" , $content , $email , PREG_PATTERN_ORDER
) ; preg_match_all ( "/<h2>Руководитель<\/h2>\n \s+(.*)<br>/" , $content , $chief , PREG_PATTERN_ORDER
) ; preg_match_all ( "/<h2>Контактное лицо<\/h2>\n \s+(.*)<br>/" , $content , $contact , PREG_PATTERN_ORDER
) ; preg_match_all ( "/<h2>ИНН<\/h2>\n \s+(.*)<br>/" , $content , $inn , PREG_PATTERN_ORDER
) ; preg_match_all ( "/<h2>Юридическое название<\/h2>\s*(.*\s*.*)\s*<br>/" , $content , $legal_name , PREG_PATTERN_ORDER
) ; return Array ( $title [ '1' ] [ '0' ] , $region [ '1' ] [ '0' ] , $adress [ '1' ] [ '0' ] , $tel [ '1' ] [ '0' ] , $www [ '1' ] [ '0' ] , $email [ '1' ] [ '0' ] , $chief [ '1' ] [ '0' ] , $contact [ '1' ] [ '0' ] , $inn [ '1' ] [ '0' ] , $legal_name [ '1' ] [ '0' ] ) ;
Часть кода парсера
Tiger
Отправлено: 14 Сентября, 2011 - 21:37:00 • Тема: Сокращение записи • Форум: Регулярные выражения
Ответов: 2 Просмотров: 182
Добрый день, меня очень волнует вопрос компактности и грамотности кода, поэтому я хочу периодически спрашивать у вас как лучше сократить ту или иную запись, заранее спасибо.
Вот первый вопрос
как это максимально сократить и привести к грамотному виду.
Tiger
Отправлено: 07 Сентября, 2011 - 09:23:19 • Тема: Скрипт: Праздники Росиии • Форум: Вопросы новичков
Ответов: 4 Просмотров: 258
Да нет, я пробовал, просто "стремно" выкладывать свои наброски, я с самого начала думал брать праздники из базы, а потом появилась сложность с теми праздниками которые идут не по образцу дата и название праздника, а первое воскресенье, второе и т. д. Ну в общем дозавершу свою мысль в скрипте и покажу. Спасибо за подсказки
Tiger
Отправлено: 07 Сентября, 2011 - 08:42:45 • Тема: Скрипт: Праздники Росиии • Форум: Вопросы новичков
Ответов: 4 Просмотров: 258
Недавно пришла идея в голову - сделать напоминалку праздников, некий аналог того, что есть на одноклассниках, но столкнулся с следующими проблемами:
Во-первых , самая большая для меня проблема - это определение даты таких праздников которые идут не четко по дате, а допустим первое воскресенье, второе, и т. д.
Во-вторых , на случай, когда на сегодняшний день не существует праздников, то выводить наиболее ближайший.
Подскажите рациональный путь решения этих задач и я постараюсь их осуществить.
Tiger
Отправлено: 31 Июля, 2011 - 13:07:47 • Тема: как лучше реализовать • Форум: Вопросы новичков
Ответов: 10 Просмотров: 357
Спасибо уже разобрался
PHP:
скопировать код в буфер обмена
switch ( $x ) {
case 0:
include ( "dbopen.php" ) ;
ShowTree( 0 , "AND zip = '" . $field . "'" ) ;
break ;
case 1:
include ( "dbopen.php" ) ;
ShowTree( 0 , "AND title LIKE '" . $field . "%'" ) ;
break ;
case 2:
include ( "dbopen.php" ) ;
ShowTree( $_GET [ 'id' ] , NULL ) ;
break ;
case 3:
include ( "dbopen.php" ) ;
ShowTree( 0, NULL ) ;
break ;
}
как сократить такую конструкцию?
Tiger
Отправлено: 31 Июля, 2011 - 12:21:41 • Тема: как лучше реализовать • Форум: Вопросы новичков
Ответов: 10 Просмотров: 357
Спасибо сделал.
PHP:
скопировать код в буфер обмена
<form method='POST' action='<?= $_SERVER [ 'PHP_SELF' ] ?> '>
Введите улицу или индекс:
<input type='text' name='field'>
<input type='submit' name='button' value='OK'>
</form>
<?PHP
if ( $_SERVER [ 'REQUEST_METHOD' ] == 'POST' && $_POST && ! empty ( $field ) ) {
{
echo ( "поиск по индексу" ) ;
include ( "dbopen.php" ) ;
$p = "zip = '" . $field . "'" ;
ShowTree( 0, $p ) ;
}
elseif ( preg_match ( "/^[0-9а-яА-Я-\)\(\s]{3}/" , $field ) ) {
echo ( "поиск по названию" ) ;
include ( "dbopen.php" ) ;
$p = "title LIKE '" . $field . "%'" ;
ShowTree( 0, $p ) ;
}
{
echo "Введите минимум 3 символа" ;
}
else
{
echo "Введите корректные данные" ;
}
}
else
{
echo "Введите данные" ;
}
function ShowTree( $ParentID , & $param ) {
global $link ;
$sSQL = "SELECT id, title, zip, pid FROM mail_index WHERE pid = " . $ParentID . " AND " . $param . " ORDER BY title" ;
echo "<UL>\n " ;
echo "<LI>\n " ;
echo $row [ "title" ] ;
echo "\n " ;
if ( $row [ "zip" ] != "0" ) {
echo $row [ "zip" ] ;
}
ShowTree( $row [ "id" ] , $param ) ;
}
echo "</UL>\n " ;
}
}
?>
Я уверен, что этот код я набрал не грамотно, поэтому кто моежт пусть внесет поправки, и оптимизирует код. Заранее спасибо.
Tiger
Отправлено: 31 Июля, 2011 - 10:21:39 • Тема: как лучше реализовать • Форум: Вопросы новичков
Ответов: 10 Просмотров: 357
OrmaJever огромное спасибо
Извините забыл 1 момент: title надо $_POST['field'] что то типо $_POST['field']% для удобного поиска по названию улицы потомучто целиком улицу не стоит писать вероятность ошибиться большая.
Кстати хочу спросить ещё - как лучше производить поиск по ключевому слову, в данном случае это название улицы?
Tiger
Отправлено: 30 Июля, 2011 - 10:21:03 • Тема: как лучше реализовать • Форум: Вопросы новичков
Ответов: 10 Просмотров: 357
в случае когда надо ввести поиск по индексу должно быть так
PHP:
скопировать код в буфер обмена
$sSQL = "SELECT id, title, zip, pid FROM mail_index WHERE pid = " . $ParentID . " AND zip = " . $_POST [ 'field' ] . " ORDER BY title" ;
а когда по улице
PHP:
скопировать код в буфер обмена
$sSQL = "SELECT id, title, zip, pid FROM mail_index WHERE pid = " . $ParentID . " AND title = " . $_POST [ 'field' ] . " ORDER BY title" ;
вот ума не хватает это реализовать грамотно
Tiger
Отправлено: 30 Июля, 2011 - 09:42:07 • Тема: как лучше реализовать • Форум: Вопросы новичков
Ответов: 10 Просмотров: 357
Уважаемые люди, я пока слаб в этом кое-как этот код набрал, пожалуйста в примерах показывайте, я так не пойму...
Tiger
Отправлено: 30 Июля, 2011 - 00:22:59 • Тема: как лучше реализовать • Форум: Вопросы новичков
Ответов: 10 Просмотров: 357
Проблема такова я не знаю как лучше сделать чтобы шел поиск по индексу через case или по названию улицы, я частично решил задачу но пока что у меня идет поиск только по индексу, не знаю как грамотно сделать, либо по индексу, либо по улицу.
PHP:
скопировать код в буфер обмена
<form method='POST' action='<?= $_SERVER [ 'PHP_SELF' ] ?> '>
Введите улицу или индекс:
<input type='text' name='field'>
<input type='submit' name='button' value='OK'>
</form>
<?PHP
if ( $_SERVER [ 'REQUEST_METHOD' ] == 'POST' ) {
{
{
$flag = 0 ;
}
else
{
if ( preg_match ( "/^[0-9а-яА-Я-\)\(\s]{3}/" , $field ) ) {
$flag = 1 ;
}
else
{
{
$flag = 2 ;
}
else
{
$flag = 3 ;
}
}
}
}
else
{
$flag = 4 ;
}
}
}
switch ( $flag ) {
case 0:
echo ( "поиск по индексу" ) ;
break ;
case 1:
echo ( "поиск по названию" ) ;
break ;
case 2:
echo "Введите минимум 3 символа" ;
break ;
case 3:
echo "Введите корректные данные" ;
break ;
case 4:
echo "Введите данные" ;
break ;
}
include ( "dbopen.php" ) ;
function ShowTree( $ParentID , $lvl ) {
global $link ;
global $lvl ;
$lvl ++;
$sSQL = "SELECT id, title, zip, pid FROM mail_index WHERE pid = " . $ParentID . " AND zip = " . $_POST [ 'field' ] . " ORDER BY title" ;
echo ( "<UL>\n " ) ;
$ID1 = $row [ "id" ] ;
echo ( "<LI>\n " ) ;
echo ( "<A HREF=\" " . "?ID=" . $ID1 . "\" >" . $row [ "title" ] . "</A>" . " \n " ) ;
if ( $row [ "zip" ] != "0" ) {
echo ( $row [ "zip" ] ) ;
}
ShowTree( $ID1 , $lvl ) ;
$lvl --;
}
echo ( "</UL>\n " ) ;
}
}
ShowTree( 0, 0) ;
?>
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB