У меня такой вопрос как работать корректно с файлами на php размером более 2Гб.? Ну касательно вывода правильного размера файла выше 2Гб - это понятно, но вот непонятка с указателями при послед. чтении строк из файла, то ли он сбрасывается то ли замирает при достижении 2Гб. на одном месте то ли указывает на конец файла. Кароче мой слиятель двух упорядочных файлов работает некорректно с такими большими файлами, в чём проблема - не пойму, но предпалогаю что проблема в ограничении разрядности указателя (дискриптора) файла.
-=lebed=- В php.ini: memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) Для того, чтобы убрать ограничения, установите значение этой директивы в -1. PHP: set_time_limit(0); $hn=fopen('source.iso' ,"rb"); $h2=fopen('avi.iso',"wb"); $size=0; while (! feof($hn)) { $file_data = fgets ($hn, 102400);//102400 -сколько считывать за раз $size+=fwrite($h2,$file_data); } echo 'Размер файла: '.$size; fclose($h2); fclose($hn); Лучше всего для этого использовать Perl.
PHP: <?php $link = mysql_connect('localhost','root',''); if (!$link) { die('Could not connect to MySQL: ' . mysql_error()); } $db_selected = mysql_select_db('foo',$link); if (!$db_selected) { die ('Не удалось выбрать базу foo: ' . mysql_error()); } $str = "Hello Friend"; $arr1 = str_split($str); for($i = 0 ; $i <= count($arr1); $i++) { mysql_query("INSERT INTO test (text) VALUES (".$arr1[$i].")"); } ?> получаю Notice: Undefined offset: 12 вчем проблема?
Почему не работает такой вариант? Пишет 'Fatal error: Call to undefined function eval()' PHP: <?php $code='eval'; $code('echo "hello";'); ?> Должно же выполниться по идеи как: PHP: <?php eval('echo "hello";'); ?> Но, увы. Хотя, допустим, такой код работает: PHP: <?php $code='base64_encode'; $code('echo "hello";'); ?>
eval - поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.
Имею Wordpress, в index.php прописан код PHP: <?php if (is_home()) { query_posts($query_string.'&cat=3&showposts=10'); } ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); // the loop ?> <div class="post" id="post-<?php the_ID(); ?>"> <h1 class="titl"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h1> <?php the_content('<!--Читать-->'); ?> </div> <?php endwhile; ?> <?php else : ?> <h2 class="center">Страница в доработке.</h2> <p class="center">-</p> <?php endif; ?> При первом вызове кода на странице все работает номально: выводятся 10 новостей (showposts=10) из категории 3 (cat=3), но если прописать этот код второй раз на странице, заменив номер категории (например на 4) и количество постов, то выводятся те же публикации из категории 3 и в том же количестве, т.е строчка PHP: ($query_string.'&cat=3&showposts=10') вообще не работает второй раз. Помогите разобраться, сам php не знаю
Сбербанк, используйте регулярные выражения: PHP: preg_match_all('/title=\"(.*?)\"/', $text, $matches); print_r($matches);
не могу сказать точно, но возможно когда вызываешь второй раз новые записи пишутся в старый массив. в любом случае http://wp-skins.info/2007/12/04/neskolko-primerov-ispolzovaniya-query_posts.html вот тут осписано как можно из разных категорий получать и в комментариях такая же ошибка как у тебя с решением.
Пример. Code: <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, '/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $data = @curl_exec($ch); curl_close($ch); preg_match('|<a href="forum(.*).html">(.*)</div>|', $data, $arr); echo $arr[0]; ?> получаем первое навание раздела - "ИНФО". как сделать это в цикле, и получить все названия разделов ? не могу сообразить, отупел в армии
PHP: preg_match_all('|<a href="forum(.*).html"><strong>(.*)</strong></a><br>|', $data, $arr); А дальше в цикле выводим содержимое массива $arr
при скачивании файла, он весит два байта. на сервере норм лежит. уверен дело в файле, который качает. вот он: PHP: <?$name_foto = htmlspecialchars($_GET["n"]); header('Content-type: application/octet-stream'); header("Content-Disposition: attachment; filename=".$name_foto);?>
Здравствуйте, подскажите пожалуйста как заставить это чудо работать? Есть код php который создает элемент select считывая xml. PHP: print "<select>"; foreach($xml->children() as $key) { echo '<option value="'.$key['alias'].'">'.' '. $key['amount'] .' '. $key['currencyName'].' - '. $key.'</option>'; } print "</select>"; ?> select: HTML: <select> <option value="telemoneyr"> 387.59 TM RUR - Telemoney</option> <option value="perfectmoneyz"> 10.92 PM USD - PerfectMoney</option> <option value="perfectmoneye"> 9.28 PM EUR - PerfectMoney</option> <option value="liqpayu"> 89.53 LP UAH - LiqPay</option> <option value="liqpayr"> 349.38 LP RUR - LiqPay</option> <option value="liqpaye"> 9.28 LP EUR - LiqPay</option> <option value="privat24z"> 11.03 P24 USD - Privat24</option> <option value="nsmep"> 89.53 НСМЭП UAH - НСМЕП</option> <option value="privat24u"> 90.07 P24 UAH - Privat24</option> <option value="privat24e"> 9.5 P24 EUR - Privat24</option> <option value="unicard"> 11.03 UK USD - Unikarta</option> <option value="monexyu"> 95.45 MoneXy UAH - MoneXy</option> </select> Мне нужно что бы в select по умолчанию выбирался Privat24. Пытался вписать нечто вроде этого, но не работает. Может кто подсказать как правильно это сделать? PHP: print "<select>"; foreach($xml->children() as $key) { echo '<option value="'.$key['alias'].'"'.if($key['alias']=="privat24u"){print "selected=selected";}.'>'.' '. $key['amount'] .' '. $key['currencyName'].' - '. $key.'</option>'; } print " </select>";
PHP: <? print "<select>"; define('SHAB', '<option value="%s" %s> %s %s - %s</option>'); foreach($xml->children() as $key) { printf(SHAB, $key['alias'], 'selected="selected"' ? $key['alias'] == 'privat24z' : '', $key['amount'], $key['currencyName'], $key); } print "</select>"; ?>
Большое спасибо разобрался уже. Надо было переставить $key['alias'] == "privat24z" ? 'selected="selected"' :
такой вопросец, нужно получить полный путь к папке в которой лежит исполняемый файл, тоесть то что возвращает функция $_SERVER['SCRIPT_FILENAME'] только без имени сомого файла, я конечно понимаю что можно написть регулярное выражение, но может есть способ проще?
http://www.php.net/manual/en/function.dirname.php или http://www.php.net/manual/en/function.pathinfo.php
вопрос такой, как глобально делать замену текста в суперглобальном массиве правильно? Мне надо чтобы во всем массиве $_GET пробелы заменялись на восклицательный знак, с переменной это выглядит так: $_GET = str_replace(' ','!',$_GET); Но с массивом так нельзя, но суть думаю понятна, вообще в идеале в этом суперглобальном массиве сделать замену как для переменных этого массива, так и для значений этих переменных, Спасибо за внимание. Напишите пример кода, плз!