Тогда советую блоки сразу расположить в РНР файле, в виде массива:
#файл block.php <?php $ar[]='<img src="http://img.forumimg.net/misc/im_icq.gif"> Это блок №1'; $ar[]='<img src="http://img.forumimg.net/misc/im_icq.gif"> Это блок №2'; $ar[]='<img src="http://img.forumimg.net/misc/im_icq.gif"> Это блок №3'; $ar[]='<img src="http://img.forumimg.net/misc/im_icq.gif"> Это блок №4'; $ar[]='<img src="http://img.forumimg.net/misc/im_icq.gif"> Это блок №5'; $ar[]='<img src="http://img.forumimg.net/misc/im_icq.gif"> Это блок №6'; $ar[]='<img src="http://img.forumimg.net/misc/im_icq.gif"> Это блок №7'; echo $ar[array_rand($ar)]; ?>
Тогда в упрощённом варианте, без изощрений с асинхронностью, страница может быть такой:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Блоки</title> <script> function gruzi(){ var blk=document.getElementById('oneblock'); var xmlHttp = new XMLHttpRequest(); xmlHttp.open("GET", "block.php", false); xmlHttp.send(null); blk.innerHTML=xmlHttp.responseText; } </script> </head> <body> <div style="border: 1px solid black; padding:10px" id="oneblock"> Тут у нас див. </div> <input type="button" onclick="gruzi()" value="Грузи"> </body> </html>
Не хочу никого обидеть, но почему-то мне часто встречаются предложения, типа: "у меня есть идея, давай ты её реализуешь, и если сработает, поделимся доходом", и никогда не встречал: "хочу поработать бесплатно годик-другой, давай ты придумаешь, над чем, я это сделаю, и если сработает, вместе заработаем". :)
Я когда-то для этих целей набросал маленькую PHP-страничку. Её нужно положить в то место, куда вы хотите сохранить архив на новом сервере, и открыть её в браузере. Файл будет перекачан со старого сервера на новый через FTP напрямую (минуя ваш компьютер).
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>FXP</title> </head> <body> <h1>FXP</h1> <? if(isset($_POST['h'])){ ini_set('display_errors', TRUE); error_reporting(E_ALL); set_time_limit(600); $tim=microtime(true); $fname=basename($_POST['f']); $conn_id = ftp_connect($_POST['h']); $login_result = ftp_login($conn_id, $_POST['u'], $_POST['p']); echo "Логинимся: $login_result<br/>\n"; if (ftp_get($conn_id, $fname,$_POST['f'], FTP_BINARY)) { echo "Файл $fname закачан за " microtime(true)-$tim . '<br/>\n'; } else { echo "Есть проблема<br/>\n"; } ftp_close($conn_id); }else{ ?> <form method="post"> <table> <tr> <td>Хост</td> <td><input name="h"/></td> </tr> <tr> <td>Пользователь</td> <td><input name="u"/></td> </tr> <tr> <td>Пароль</td> <td><input name="p"/></td> </tr> <tr> <td>Файл</td> <td><input name="f" size="100"/></td> </tr> </table> <input type="submit" value="Поехали" /> </form> <?php }?> </body> </html>
limbah_garry, Эти блоки с картинками и текстами, они где хнанятся? В базе данных ли? MySQL ли? Сайт на PHP ли? Может они в XML файле, или в текстовом, или в PHP файле уже в массив раскиданы?
Я думаю, "а" уже не нужно:
.maincont img { display: block; padding: 5px; } .maincont img:hover { background-image: -webkit-linear-gradient(left, #f3a01e, #D05D2A, #9dc425, #4b8db5, #7c48b5); background-image: -moz-linear-gradient(left, #f3a01e, #D05D2A, #9dc425, #4b8db5, #7c48b5); background-image: -ms-linear-gradient(left, #f3a01e, #D05D2A, #9dc425, #4b8db5, #7c48b5); background-image: -o-linear-gradient(left, #f3a01e, #D05D2A, #9dc425, #4b8db5, #7c48b5); }
У многих хостинг-серверов, в целях борьбы со спамом, действует ограничение: можно отправлять письма только от имени такого мэила, который на самом деле существует на этим экаунте. У вас отправка пытается отправляться от имени мэила посетителя: From:$email. Заведите почтовую ячейку на вашем домене, типа: noreply@brokoli.com, и в "Content-type:text/plain; charset = windows-1251\r\nFrom:$email" замените на него $email: "Content-type:text/plain; charset = windows-1251\r\nFrom: noreply@brokoli.com". Если хотите, чтобы сохранилась возможность отвечать на письма кнопкой "Ответить" в вашей почте, то можно добавить следующее: "Content-type:text/plain; charset = windows-1251\r\nFrom: noreply@brokoli.com\r\nReply-To: $email\r\n"
Может в вашем случае дело и не в этом (или не только в этом), но я сталкивался с этим не раз.
Если в JQuery не сильны (как и я), то вот примерчик простой, стародедовской реализации:
<div onclick="makeit(this)">Кнопка</div> <script type="text/javascript"> function makeit(it){ it.onclick=''; alert('Делаем что-то'); } </script>
То есть, первым делом, обнуляется onclick, а потом уже делается всё остальное.
Посмотрел сейчас в 5.3.13, $s[2][0] - выдаёт ошибку, но что интересно,
$s='abcdef';
$s1=$s[2];
echo $s1[0];
- ошибку не выдаёт, печатает "с".
Я думаю, речь тут не о багах, просто в 5.4 изменили внутренний механизм доступа к буквам в строках.
Хочу поддержать товарища dkameleon. Во многих языках программирования обращение к символам строк как к элементам массива является законным и общепринятым приёмом. В уже упомянутой статье документации так же явно сказано:
Что можно перевести как: "Можно обращаться и изменять буквы в строках используя индекс (начинающийся с 0) в квадратных скобках, типа $str[42]. Для таких случаев можешь считать строку массивом букв."
Для начала, я бы убедился, что я точно знаю, что именно я вижу в выводе. Для этого, я бы попробовал изменить код следующим образом, и посмотреть на результат:
<?php $filename = 'file.txt'; $content = file ($filename); foreach ($content as $line) { $line = explode ('\t', $line); $a = $line[0]; $b = $line[1]; $c = $line[2]; $d = $line[3]; echo "a=$a; b=$b; c=$c; d=$d<br>\n"; } ?>