PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 25
bambr32 Отправлено: 03 Июля, 2016 - 22:51:34 • Тема: как распарсить домен третьего уровня • Форум: HTTP и PHP

Ответов: 0
Просмотров: 721
Возможно ли как-то с помощью .htaccess распарсить домен третьего уровня и получить его имя в качестве переменной? При это сам домен не создается.

Пример:
пользователь переходит по ссылке articles.domain.ru/article1.htm
php присваивает переменной следующие значения: per1=articles, per2=article1, т.е. фактически преобразует его в запрос типа domain.ru/?per1=articles&per2=article1.
Возможно ли такое без физического создания доменов третьего уровня?
И еще вопрос: возможно ли сделать так, чтобы распарсить переменную per2 на две переменных: per2=article, per3=1, т.е. цифры в конце - это per3, а все, что перед ними - per2?

как распарсить через .htaccess урлы типа http://site1[dot]ru/per1[dot]htm знаю, делаю примерно так:
RewriteRule ^(.*).htm$ index.php?per1=$1 [L]

но вот с доменом третьего уровня ума не приложу, как правильно сделать и можно ли...
bambr32 Отправлено: 10 Мая, 2015 - 13:30:01 • Тема: Загрузка данных из txt в MySQL • Форум: Работа с файловой системой и файлами

Ответов: 4
Просмотров: 1596
спасибо! сейчас попробую. Именно вторая (та - которая ужасная вещь) меня и интересовала, ибо задачка разовая.

$failus_otkrivatus - это шедевр!!!
bambr32 Отправлено: 10 Мая, 2015 - 12:58:34 • Тема: Загрузка данных из txt в MySQL • Форум: Работа с файловой системой и файлами

Ответов: 4
Просмотров: 1596
Есть текстовый файл с кеями следующего содержания:

Словосочетание1
Словосочетание2
...
Словосочетаниеn

Как вытащить эти словосочетания построчно и занести их в таблицу MySQL

Просьба тапками не швырять, ибо форум и гугл скурил, но почему-то все, что предлагается не работает. Сталкивался ли кто-либо с данной проблемой?
bambr32 Отправлено: 06 Апреля, 2015 - 14:09:01 • Тема: ожидание ответа от сервер • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 4064
nerv пишет:
учись заключать код в теги

виноват, исправлюсь...
(Добавление)
lastdays пишет:
Рисунок загрузки изначально нужно скрыть, добавляем display:none;

<img id="loadImg" src="img/load.gif" style="display:none;"/>


<input type="button" id="send" value="Отправить">


CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3. //- Отправляем аякс запрос  при клике на кнопку "отправить".
  4. $( "#send" ).click(function() {
  5. //- Показываем индикатор загрузки
  6. $('#loadImg').show();
  7.  
  8.    $.ajax({
  9.          type : 'POST',
  10.          url: "ajax.php",
  11.          data: {
  12.             firstname  : 'имя',
  13.             lastname : 'фамилия',
  14.          },
  15.          dataType: 'html',
  16.          success: function(data){  
  17.                //- скрываем индикатор загрузки
  18.                $('#loadImg').hide();
  19.          },
  20.          error : function(request,error){
  21.            console.log(request,error);
  22.          }
  23.    });
  24.  
  25. });
  26.  
  27.  


Можно искусственную задержку делать c помощью функции setTimeout, например и показывать загрузку, пока она отработает.



я наверное что-то не то делаю - создал вот такую пустую страницу. После нажатия кнопки ничего не происходит.
В чем моя ошибка?

PHP:
скопировать код в буфер обмена
  1.  
  2.   <script type="text/javascript">
  3.  //- Отправляем аякс запрос  при клике на кнопку "отправить".
  4. $( "#send" ).click(function() {
  5. //- Показываем индикатор загрузки
  6. $('#loadImg').show();
  7.  
  8.    $.ajax({
  9.          type : 'POST',
  10.          url: "ajax.php",
  11.          data: {
  12.             firstname  : 'имя',
  13.             lastname : 'фамилия',
  14.          },
  15.          dataType: 'html',
  16.          success: function(data){  
  17.                //- скрываем индикатор загрузки
  18.                $('#loadImg').hide();
  19.          },
  20.          error : function(request,error){
  21.            console.log(request,error);
  22.          }
  23.    });
  24.  
  25. });
  26.  
  27.  
  28.    </script>
  29. <img id="loadImg" src="./images/ajax-loader.gif" style="display:none;"/>
  30.  
  31.  
  32. <input type="button" id="send" value="Отправить">
  33.  
bambr32 Отправлено: 06 Апреля, 2015 - 14:07:11 • Тема: распознавание "родных" ссылок • Форум: HTTP и PHP

Ответов: 3
Просмотров: 1242
Faraon-san пишет:
PHP:
скопировать код в буфер обмена
  1. function find_link($text){
  2.         preg_match_all('/(https?:)?(\/\/)?([\w\.-]+)\.([a-z\.]{2,})(\/)?([^\s\"\'\)\>\n]*)/i', $text, $replace);
  3.         foreach($replace[0] as $url){
  4.                 $target = '';
  5.                 if(parse_url($url, PHP_URL_HOST) != $_SERVER['HTTP_HOST'])
  6.                 {
  7.                         $target = 'target="_blank"';
  8.                 }
  9.                 $arr[$url] = '<a '.$target.' href="'.$url.'">'.$url.'</a>';
  10.         }
  11.         $text = strtr($text, $arr);
  12.  
  13.         return $text;
  14. }


Спасибо, работает нормально. Немного переделал - заменил
PHP:
скопировать код в буфер обмена
  1. if(parse_url($url, PHP_URL_HOST) != $_SERVER['HTTP_HOST'])
  2.                 {
  3.                         $target = 'target="_blank"';
  4.                 }
  5.                 $arr[$url] = '<a '.$target.' href="'.$url.'">'.$url.'</a>';


на
PHP:
скопировать код в буфер обмена
  1. if(parse_url($url, PHP_URL_HOST) != $_SERVER['HTTP_HOST'])
  2.                 {
  3.           $arr[$r] = "<a  href='$r'>$r</a>";
  4.                 } else {
  5.          $arr[$r] = "<a  target='_blank' href='$r'>$r</a>";
  6.                                 }


Но в этом случае открывается в том же окне ссылка https://site1[dot]ru

А можно ли как-то открывать все ссылки на родительский домен в том же окне (например http://site.ru/page1.php, http://site1[dot]ru/page2.php?id=100 и т.д.)
(Добавление)
и еще такая проблема - в случае, если после ссылки идет перенос каретки на следующую строку, например:

http:yandex.ru
текст

, то после прогона через функцию find_link на выходе получаем следующее:

http:yandex.ru /> текст

весь текст активный(включая /> текст), урл, на который она направляет: http://yandex[dot]ru%3Cbr/

Я так понимаю, проблема в переводе каретки - как ее можно заэкранировать?
bambr32 Отправлено: 02 Апреля, 2015 - 22:50:52 • Тема: распознавание "родных" ссылок • Форум: HTTP и PHP

Ответов: 3
Просмотров: 1242
для "оборачивания" http-адресов использую такую функцию:

function find_link($text){
if(strstr($text, "http")){
preg_match_all("#http([^),\s\n]*)#", $text, $replace);
foreach($replace[0] as $r){
$arr[$r] = "<a target='_blank' href='$r'>$r</a>";
}
$text = strtr($text, $arr);
} elseif(strstr($text, "HTTP")){
preg_match_all("#HTTP([^),\s\n]*)#", $text, $replace);
foreach($replace[0] as $r){
$arr[$r] = "<a target='_blank' href='$r'>$r</a>";
}
$text = strtr($text, $arr);
}
if($text != NULL) return $text;
else return $text;
}


Все работает нормально, но есть одно "НО": все ссылки открываются в новом окне.

Адрес сайта http://site[dot]ru Как сделать, чтобы ссылки, начинающиеся на http://site[dot]ru или http://www[dot]site[dot]ru открывались в этом же окне, а остальные - в новом?
bambr32 Отправлено: 02 Апреля, 2015 - 22:26:01 • Тема: ожидание ответа от сервер • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 4064
оешил сделать сделать так, чтобы при ожидании ответа AJAX-запроса от сервера крутилась анимация (бегающий кружок с надписью "loading...")

Сам в AJAX разбираюсь очень плохо, поэтому решил поискать примеры от старших товарищей. Из того, что нашел, более-менее понятно вот тут:

================================ ======
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style>
/*описание стилей*/
#loadImg{position:absolute; z-index:1000; display:none}
</style>
</head>
<body>

<!-- содержимое страницы -->

<img id="loadImg" src="img/load.gif" />
</body>
</html>

При старте ajax-запроса покажем изображение с анимацией загрузки в центре страницы, а при получении ответа от сервера скроем эту анимацию:

$.get("/ajaxtest.php", onAjaxSuccess); // - отправим запрос на сервер
startLoadingAnimation(); // - запустим анимацию загрузки

function onAjaxSuccess(data) // - функция завершения запроса
{
stopLoadingAnimation();

// дальнейшая работа с полученными от сервера данными
...
}

function startLoadingAnimation() // - функция запуска анимации
{
// найдем элемент с изображением загрузки и уберем невидимость:
var imgObj = $("#loadImg");
imgObj.show();

// вычислим в какие координаты нужно поместить изображение загрузки,
// чтобы оно оказалось в серидине страницы:
var centerY = $(window).scrollTop() + ($(window).height() + imgObj.height())/2;
var centerX = $(window).scrollLeft() + ($(window).width() + imgObj.width())/2;

// поменяем координаты изображения на нужные:
imgObj.offset(top:centerY, left:centerX);
}

function stopLoadingAnimation() // - функция останавливающая анимацию
{
$("#loadImg").hide();
}


================================ =====

Я наверное слишком деревянный, так как не могу понять, куда это вставлять (начиная с $.get("/ajaxtest.php", onAjaxSuccess); // - отправим запрос на сервер и до конца примера).
И что такое /ajaxtest.php??? Это файл, который будет загружаться после обработки AJAX-запроса или что-то ещё?


Я обращаюсь к серверу так:

<span onclick="PostComments('post_comments<?echo $data['Post'];?>', 'post_comments_form<?echo $data['Post'];?>', 'post_comments.php?id_post=<?echo $data['Post'];?>&id=<?echo $id;?>&count_vsego=<?echo $data['LikeCount'];?>')"><?echo $data['LikeCount'];?></span>


т.е. после нажатия на данный span в див <div id="post_comments"> загружается файл post_comments.php

Скрипт, с помощью которого загружаются данные выглядит так:

<script type="text/javascript">
function PostComments(post_comments<?echo $data['Post'];?>,post_comments_form<?echo $data['Post'];?>,url) {
jQuery.ajax({
url: url, //Адрес подгружаемой страницы
type: "POST", //Тип запроса
dataType: "html", //Тип данных
data: jQuery("#"+post_comments_form<?echo $data['Post'];?>).serialize(),
success: function(response) { //Если все нормально
document.getElementById(post_comments<?echo $data['Post'];?>).innerHTML = response;
},
error: function(response) { //Если ошибка
document.getElementById(post_comments<?echo $data['Post'];?>).innerHTML = "Ошибка при отправке формы";
}
});
}
</script>

Если можно, разъясните на пальцах, плз, что куда вставить, чтобы начала работать данная функция (анимация загрузки)...
bambr32 Отправлено: 01 Апреля, 2015 - 12:55:46 • Тема: Нажатие клавиши Enter • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 1091
Faraon-san, DeepVarvar, огромное спасибо.

И первый и второй вариант годные, но у DeepVarvar'a - как раз для меня, т.к. в этом случае результат поиска именно в отдельном диве отображается, а в первом варианте - на отдельной странице.

не знал, что есть такое событие onsubmit (раньше как-то onclick хватало). Теперь буду знать...
bambr32 Отправлено: 01 Апреля, 2015 - 12:21:33 • Тема: Нажатие клавиши Enter • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 1091
Есть такая форма:
<form id="frm" class="searchform" >
<input name="search" class="searchfield" type="text" value=" Поиск..." onfocus="if (this.value == ' Поиск...') {this.value = '';}" onblur="if (this.value == '') {this.value = ' Поиск...';}" />
<input onclick="ViewImages('center_block', 'frm', 'searchresult.php');" class="searchbutton" type="button" value="Найти" >
</form>

соответственно, при нажатии кнопки "найти" данные из поля "search" передаются на страницу searchresult.php

Как сделать так, чтобы данные передавались не только после нажития кнопки "Найти" но и после нажатия кнопки Enter на клавиатуре? (сейчас при нажатии Enter открывает index.php?search=текст поиска)
bambr32 Отправлено: 16 Марта, 2015 - 14:40:45 • Тема: есть ли смысл ставить LIMIT • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 38
Мелкий пишет:
Для уникальный и первичных ключей планировщик сам знает, что строка по этому индексу будет только одна.

Но limit 1 имеет смысл писать - как часть самодокументируемого кода, акцент внимания, что в результате ждём только одну строку.


ОК, спасибо, я тоже так думал, но лучше уточнить...
bambr32 Отправлено: 16 Марта, 2015 - 12:22:26 • Тема: есть ли смысл ставить LIMIT • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 38
Пытаюсь оптимизировать скорость работы БД, для чего там, где заранее известно количество необходимого количество результатов запроса ставлю LIMIT

В связи с этим возник такой вопрос: есть ли смысл ставить LIMIT 1 в тех запросах, где по определению всегда как максимум 1 строка в результатах выборки (в тех случаях, когда поиск проводится по Primary ключу с AUTO INCRIMENT). Понимает ли MySQL, что там в любом случае один ответ и сам останавливает поиск, или необходимо указывать ему это явно?
bambr32 Отправлено: 15 Марта, 2015 - 16:36:03 • Тема: Двойной лимит на выборку в MySQL • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 44
Огромное спасибо! То, что нужно!
bambr32 Отправлено: 15 Марта, 2015 - 08:45:01 • Тема: Двойной лимит на выборку в MySQL • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 44
Проблема такая: есть таблица, из которой нужно выбрать 10 записей с наивысшим значением колонки CTR, а уже из этих десяти - выбрать три записи случайным образом

Базовый запрос выглядит так:
$qr_result = mysql_query("select * from table ORDER BY CTR Desc LIMIT 10")
or die(mysql_error());
$num_rows = mysql_num_rows( $qr_result );
while($data = mysql_fetch_array($qr_result)) {
///здесь отображаем 3 записи из 10, выбранные случайным образом
}

Как модифицировать данный запрос, чтобы он оставил 3 записи из 10, выбрав их случайным образом?
bambr32 Отправлено: 06 Февраля, 2015 - 21:43:06 • Тема: Как защититься от инъекции такого типа • Форум: Хранение данных, их вывод и обработка

Ответов: 1
Просмотров: 834
У меня есть форма, в которой возможно ввести сообщение, которое в дальнейшем будет отображаться на сайте. Сообщения хранятся в MySQL

Столкнулся с такой проблемой: если ввести например

<form id="myForm">
<textarea rows="7" name="message_text" cols="30"></textarea>
<input onclick="FormClick(); return false" type="button" value="написать">
</form>

то соответственно форма сохраняется в БД и в дальнейшем при выводе происходит отображение данной формы. Также возможно насколько я понял и тот же Java-скрипт засунуть в сообщение.

Как можно исключить возможность загрузки такого "счастья" в БД, или же как загружать, но как-то экранировать куски такого кода?
bambr32 Отправлено: 02 Февраля, 2015 - 09:01:52 • Тема: лишний блок в AJAX • Форум: HTTP и PHP

Ответов: 1
Просмотров: 860
Неужели никто не знает, что это за хрень? Сегодня еще хуже - ВСЕ блоки задвоены, хотя вроде ничего не менял в коде. Сверху - как должно быть после сортировки, внизу - первоначальный вариант. Подскажите, в чем может быть причина, или где копать - очень нужно!!!

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB