Проблема с реализацией переменной в ифрейм

Тема в разделе "PHP", создана пользователем SergeiSP, 5 фев 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. SergeiSP

    SergeiSP

    Регистр.:
    13 фев 2007
    Сообщения:
    375
    Симпатии:
    115
    Привет, помогите, пожалуйста. Наверное тут да же дело не столько в php, и можно реализовать на java script.
    Суть такая, есть код ифрейма. Любой код ифрейма, например такой
    <iframe width="1" height="1" border="0" frameborder="0" style="border:none;"). " scrolling="no" src="http://"></iframe>

    Идея в том, чтоб в коде вместо статичного сайта использовалась переменная, которая брала бы ссылки из файла. Т.е. такой вроде ротатора, который рэндомно подставляет ссылки из файла при каждом заходе юзера.
     
  2. resident

    resident Создатель

    Регистр.:
    15 апр 2006
    Сообщения:
    10
    Симпатии:
    2
    В чем проблема вставить в src="" переменную?
     
  3. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
    SergeiSP, есл кратко то:
    1) Берем файл в котором с каждой новой строки записаны адреса для подстановки
    2) Считываем содержимое файла функцией file в массив
    3) Узнаем количество элементов в массиве функцией count
    4) Выбираем случайное значение функцией mt_rand в диапозоне от 0 до count-1 элементов
    5) Выводим это значение при формирование кода фрейма
     
  4. SergeiSP

    SergeiSP

    Регистр.:
    13 фев 2007
    Сообщения:
    375
    Симпатии:
    115
    Можно поподробнее с 5 пунктом, я как раз чего-т ои не могу сообразить, как формировать именно ифрейм.
     
  5. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
    А в чем проблема?
    Например так, echo '<iframe width="1" height="1" border="0" frameborder="0" style="border:none;"). " scrolling="no" src="'.$siteurl.'"></iframe>';
    $siteurl это переменная которая содержит адрес сайта
     
  6. Fak1r

    Fak1r Постоялец

    Регистр.:
    8 янв 2008
    Сообщения:
    88
    Симпатии:
    18
    Ну например так можно сделать:
    Код:
    $base = "base.txt";
    $link = file($base);
    $id = rand(0, count($link));
    echo "<frame src=\"".$link[$id]."\"></frame>";
     
  7. SergeiSP

    SergeiSP

    Регистр.:
    13 фев 2007
    Сообщения:
    375
    Симпатии:
    115
    Вы меня не поняли, это то все понятно, как на php написать, токо у меня код ифрейма на странице html, а вот как сюда впихнуть php я и не могу понять...
    Т.е. у меня страницы не динамические, а статичные в html.
     
  8. Fak1r

    Fak1r Постоялец

    Регистр.:
    8 янв 2008
    Сообщения:
    88
    Симпатии:
    18
    Может тогда ajax, javascript скрипт запрашивает по ссылке файл с линками, считывает их в массив и рандомно выводит.
     
  9. SergeiSP

    SergeiSP

    Регистр.:
    13 фев 2007
    Сообщения:
    375
    Симпатии:
    115
    А можно реализацию подобных действий на ява скрипте написать, а то я в нем ничего не понимаю. :nezn:
     
  10. Fak1r

    Fak1r Постоялец

    Регистр.:
    8 янв 2008
    Сообщения:
    88
    Симпатии:
    18
    Код:
    <html>
    <head>
    <script>
    
    getlink(getXmlHttp());
    
    function getXmlHttp(){
      var xmlhttp;
      try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
        try {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
          xmlhttp = false;
        }
      }
      if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
        xmlhttp = new XMLHttpRequest();
      }
      return xmlhttp;
    }
    
    function getlink(xmlObj){
    	var xmlhttp = xmlObj;
    	xmlhttp.open('GET', '[B]/ajax/link.txt[/B]', true);
    	xmlhttp.onreadystatechange = function() {
    	if (xmlhttp.readyState == 4) {
    		if(xmlhttp.status == 200) {
    			var tmp = xmlhttp.responseText.split("\n");
    			var num = randomNumber(0, tmp.length);
    				if(!tmp[num]){
    					getlink(getXmlHttp());
    				}else{
    					document.all.[B]myfr[/B].src = tmp[num];
    				}
    			}
    		}
    	};
    	xmlhttp.send(null);
    }
    
    
    function randomNumber (m,n)
    {
      m = parseInt(m);
      n = parseInt(n);
      return Math.floor( Math.random() * (n - m + 1) ) + m;
    }
    </script>
    </head>
    <body>
    <iframe height="500" width="500" id="[B]myfr[/B]"></iframe>
    </body>
    </html>

    myfr - id фрейма
    /ajax/link.txt - файл с сылками в столбик.

    Вот как то так))
     
    SergeiSP нравится это.
Статус темы:
Закрыта.