PHP.SU

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

Страниц (8): [1] 2 3 4 5 6 7 8 »

> Найдено сообщений: 120
fullzero Отправлено: 29 Января, 2017 - 16:32:14 • Тема: XPath помогите разорбраться • Форум: XML и его обработка

Ответов: 1
Просмотров: 1998
Кто может подсказать как через XPath найти все Header, Content, ToolTip, TextBlock

Ранее пробовал так, но файлов много и каждого своя структура
Кстати 3 вариант не работает, ругается: Invalid argument supplied for foreach()
PHP:
скопировать код в буфер обмена
  1.  
  2. $xaml = simplexml_load_file('Items.xaml');
  3.  
  4. // Header
  5. foreach ($xaml->ScrollViewer->StackPanel->GroupBox as $text) {
  6.     echo $text["Header"]."<br>\n";
  7. }
  8.  
  9. // TextBlock
  10. foreach ($xaml->ScrollViewer->StackPanel->GroupBox->StackPanel->StackPanel->TextBlock as $text) {
  11.     echo $text."<br>\n";
  12. }
  13.  
  14. // Content
  15. foreach ($xaml->ScrollViewer->StackPanel->GroupBox->StackPanel->StackPanel->WrapPanel->RadioButton as $text) {
  16.     echo $text['Content']."<br>\n";
  17. }
  18.  


Как сделать запрос через XPath до Header, Content, ToolTip, TextBlock? Пример файла я приложил
fullzero Отправлено: 22 Января, 2017 - 19:34:34 • Тема: Поиск и замена значений между тегами • Форум: Регулярные выражения

Ответов: 2
Просмотров: 448
Строитель пишет:
fullzero, если я вас правильно понял
PHP:
скопировать код в буфер обмена
  1. $str = '<TextBlock TextWrapping="Wrap">Color</TextBlock>';
  2. $patt = '~(<TextBlock[^>]*>).*?(</TextBlock>)~iu';
  3.  
  4. echo preg_replace($patt, '$1Цвет$2', $str);
  5. // Исходный код будет такой:
  6. // <TextBlock TextWrapping="Wrap">Цвет</TextBlock>


Не совсем то, у меня есть таблица, в ней есть все оригинальные поля (Color, Text, и так далее) и перевод полей на русский язык, вот мне надо заменить оригинальный текст в тегах на мой переведенный
fullzero Отправлено: 22 Января, 2017 - 18:50:34 • Тема: Поиск и замена значений между тегами • Форум: Регулярные выражения

Ответов: 2
Просмотров: 448
Всем привет. Подскажите пожалуйста, как произвести замену значений в тегах? У меня есть массив оригинальных строк и уже переведенных, саму замену произвожу в файле. Пробовал через str_replace но он меняет все найденные совпадения, получается нечто: <ТекстBlock ТекстWrapping="Wrap">Цвет</ТекстBlock> )))

Оригинальные значения искал через preg_match_all, после сохранял в базу и делал перевод
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/<TextBlock(.*?)>(.*?)<\/TextBlock>/', $file, $TextBlock);
  2. preg_match_all('/<Label(.*?)="(.*?)"(.*?)\/>/', $file, $Label);


пример файла
CODE (htmlphp):
скопировать код в буфер обмена
  1. <TextBlock TextWrapping="Wrap">Color</TextBlock>
  2. <TextBlock>Greed</TextBlock>
  3. <Label>Text</Label>
  4. и прочие поля


Попытка произвести замену Ха-ха
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT `en`,`ru` FROM `#__translate` WHERE ru!=\"\"";
  2. $db->setQuery($query);
  3. $row = $db->loadObjectList();
  4.  
  5. for($i=0;$i<=count($row);$i++) {
  6. $patterns = array();
  7. $patterns[0] = '/<GroupBox Header="'.$row[$i]->en.'"(.*?)>/';
  8. $patterns[1] = '/<Label(.*?)="'.$row[$i]->en.'"(.*?)\/>/';
  9. $patterns[2] = '/<TextBlock(.*?)>'.$row[$i]->en.'<\/TextBlock>/';
  10.  
  11. $replacements = array();
  12. $replacements[0] = '/<GroupBox Header="'.$row[$i]->ru.'"(.*?)>/';
  13. $replacements[1] = '/<Label(.*?)="'.$row[$i]->ru.'"(.*?)\/>/';
  14. $replacements[2] = '/<TextBlock(.*?)>'.$row[$i]->ru.'<\/TextBlock>/';
  15.  
  16. $result = preg_replace($patterns, $replacements, $file);
  17. }


Как я понял, я намудрил с шаблонами... Кто подскажет или объяснит как поправить дело?
fullzero Отправлено: 24 Июня, 2014 - 13:30:00 • Тема: обрезание \n\n • Форум: Программирование на PHP

Ответов: 6
Просмотров: 614
Ганс пишет:
$str = "привет, \nмир";
echo $str;


у меня нормально работает, выводит
fullzero Отправлено: 24 Июня, 2014 - 13:21:29 • Тема: Кодировка php • Форум: Программирование на PHP

Ответов: 7
Просмотров: 548
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $mes = "Человек по имени ".$name." отправил сообщение из формы обратной связи: ".$comtext;
  3. $from = $email;
  4. $to = $emailadmin;
  5. $sub = '=?windows-1251?B?'.base64_encode('Новая заявка').'?=';
  6. $headers = 'From: '.$from.'
  7. ';
  8. $headers .= 'MIME-Version: 1.0
  9. ';
  10. $headers .= 'Content-type: text/plain; charset=windows-1251
  11. ';
  12. $mes = iconv("UTF-8", "windows-1251", $mes);
  13. mail($to, $sub, $mes, $headers);
  14. ?>
fullzero Отправлено: 17 Июля, 2013 - 14:39:34 • Тема: Автозамена совпадений содержимого в теге из файла • Форум: Регулярные выражения

Ответов: 6
Просмотров: 413
EuGen спасибо, все работает Улыбка

Исправил только одну строчку, скобочки не хватало Улыбка
fullzero Отправлено: 15 Июля, 2013 - 18:51:01 • Тема: Автозамена совпадений содержимого в теге из файла • Форум: Регулярные выражения

Ответов: 6
Просмотров: 413
esterio пишет:
А по факту. здесь много чего найдете для себя
http://forum.php.su/topic.php?forum=71&topic=11178


То что по ссылке мне не очень подходит. Не важно какого формата файл. Файл на русском может быть и в txt. Вроде бы всё так просто но на деле сложновато выходит.

Щас что нить попробую
fullzero Отправлено: 15 Июля, 2013 - 18:03:48 • Тема: Автозамена совпадений содержимого в теге из файла • Форум: Регулярные выражения

Ответов: 6
Просмотров: 413
Всем привет. Есть EN.xml файл а в нём несколько тысяч строк с примерным содержанием <lang name="тут имя" тут могут быть ещё имена><![CDATA[тут английские слова]]></lang>

Есть второй файл xml там те же теги и имена только содержимое тега на русском. Надо пробежаться по файлу EN.xml и заменить на найденные совпадения по name из RU.xml

Тут где то на форуме нашёл небольшой пример но он находит только содержимое тегов а мне надо заменить из EN на RU по совпадающему name=

PHP:
скопировать код в буфер обмена
  1.  
  2. $sData= file_get_contents('en.xml');
  3. preg_match_all('/\<lang [^\>]*\>(.*)\<\/lang\>/Usmi', $sData, $rgMatches);
  4. foreach ($rgMatches[1]  as $value) {
  5. echo "$value\n";
  6. }
  7.  


Надеюсь понятно объяснил Радость и вообще такое реально провернуть?
fullzero Отправлено: 31 Мая, 2012 - 11:31:05 • Тема: Помогите доделать функцию вывода треков из базы данных • Форум: Вопросы новичков

Ответов: 4
Просмотров: 379
tuareg LIMIT будет где то около 50 - 100, нагрузка будет не существенная. Ожидается в базе 60 000 композиций. Улыбка

EuGen щас попробую.
(Добавление)
EuGen спасибо, 100й раз выручаешь Улыбка Скоро тебе алтарь поставлю Радость
(Добавление)
У меня была функция

PHP:
скопировать код в буфер обмена
  1. function NavigationAuthors($ALPHA){
  2. $sql = "SELECT * FROM authors WHERE name like '".$_GET['letter']."%'";
  3. $query = mysql_query($sql);
  4. $total = intval((mysql_num_rows($query)-1)/5)+1;
  5. if(empty($page) or $page < 1) $page = 1;
  6. if($page > $total) $page = $total;
  7.  
  8. // Кнопки перехода в начало и в конец
  9. if ($page != 1) $HOME = '<A href="?letter='.$_GET['letter'].'&page=1" class="pag">Начало</A> ';
  10. if ($page != $total) $END = ' <A href="?letter='.$_GET['letter'].'&page=' .$total. '" class="pag">Конец</A>';
  11.  
  12. // Находим страницы с обоих краев, если они есть
  13. if($page - 4 > 0)$page4left = ' <a href="?letter='.$_GET['letter'].'&page='. ($page - 4) .'" class="pag">'. ($page - 4) .'</a> ';
  14. if($page - 3 > 0)$page3left = ' <a href="?letter='.$_GET['letter'].'&page='. ($page - 3) .'" class="pag">'. ($page - 3) .'</a> ';
  15. if($page - 2 > 0)$page2left = ' <a href="?letter='.$_GET['letter'].'&page='. ($page - 2) .'" class="pag">'. ($page - 2) .'</a> ';
  16. if($page - 1 > 0) $page1left = '<a href="?letter='.$_GET['letter'].'&page='. ($page - 1) .'" class="pag">'. ($page - 1) .'</a> ';
  17. if($page + 4 <= $total) $page4right = ' <a href="?letter='.$_GET['letter'].'&page='. ($page + 4) .'" class="pag">'. ($page + 4) .'</a>';
  18. if($page + 3 <= $total) $page3right = ' <a href="?letter='.$_GET['letter'].'&page='. ($page + 3) .'" class="pag">'. ($page + 3) .'</a>';
  19. if($page + 2 <= $total) $page2right = ' <a href="?letter='.$_GET['letter'].'&page='. ($page + 2) .'" class="pag">'. ($page + 2) .'</a>';
  20. if($page + 1 <= $total) $page1right = ' <a href="?letter='.$_GET['letter'].'&page='. ($page + 1) .'" class="pag">'. ($page + 1) .'</a>';
  21.  
  22. // Вывод переключателей для постраничной навигации
  23. $ret = "<center>".$HOME.$page4left.$page3left.$page2left.$page1left.$page.$page1right.$page2right.$page3right.$page4right.$END."</center>";
  24. return $ret;
  25. }


Теперь придётся делать пагинатор и для Tracks Улыбка
fullzero Отправлено: 31 Мая, 2012 - 08:41:02 • Тема: Помогите доделать функцию вывода треков из базы данных • Форум: Вопросы новичков

Ответов: 4
Просмотров: 379
Есть три таблицы
authors (id, name, description) - авторы
tracks (id, name, description) - треки
authors_tracks (author_id, track_id) в певое поле id автора во второе id трека

Есть функция, выбирает всех авторов на нужную мне букву $_GET['letter'], например буква А она выводит всех авторов на А

PHP:
скопировать код в буфер обмена
  1. function getListAuthors($ALPHA){
  2. $num = 5;
  3. if(empty($page) or $page < 0) $page = 1;
  4. $start = $page * $num - $num;
  5. $sql = "SELECT * FROM authors WHERE name like '".$_GET['letter']."%' LIMIT $start, $num ";
  6. $query = mysql_query($sql);
  7. while($r = mysql_fetch_assoc($query)){
  8. $ret .= '<a href="?author_id='.$r['id'].'">'.$r['name'].'</a><br>';
  9. }
  10. return $ret;
  11. }
  12.  
  13. if($_GET['letter'])
  14. {
  15. echo getListAuthors($ALPHA);
  16. }


Вот вторая функция, должна выводить все песни автора не знаю как вывести названия песен зная author_id исполнителя
PHP:
скопировать код в буфер обмена
  1. // Вывод треков по author_id
  2. function getListTracks($ALPHA){
  3. }
  4. if($_GET['author_id'])
  5. {
  6. echo getListTracks($ALPHA);
  7. }


Слышал что можно выбирать данные сразу из 2 таблиц. Надо найти все треки автора по его id. Как сделать в моём случае? Надеюсь всем понятно что я написал
fullzero Отправлено: 31 Мая, 2012 - 06:43:22 • Тема: фото в бд • Форум: Графика в PHP

Ответов: 40
Просмотров: 11551
progiii лучше картинки хранить на диске а не в базе. В базе храни только адрес картинки например image/foto/user1.jpg

Почитать про загрузку файлов можно тут http://php.su/phphttp/?uploads

Переменную с адресом полученую из базы вставишь в свой код
echo "<img src=\"$image\">";
fullzero Отправлено: 31 Мая, 2012 - 06:23:46 • Тема: помогите с кирилицей в .htaccess • Форум: Apache и другие веб-серверы

Ответов: 13
Просмотров: 786
sKaa ты не понял, не мне это нужно Радость это надо сделать Came Улыбка
fullzero Отправлено: 31 Мая, 2012 - 06:09:49 • Тема: помогите с кирилицей в .htaccess • Форум: Apache и другие веб-серверы

Ответов: 13
Просмотров: 786
sKaa я пользуюсь Uniqway Poetic Улыбка
fullzero Отправлено: 31 Мая, 2012 - 05:37:25 • Тема: помогите с кирилицей в .htaccess • Форум: Apache и другие веб-серверы

Ответов: 13
Просмотров: 786
Came а кодировку документа менял?

я не про header('Content-type: text/html; charset=utf-8'); я про

fullzero пишет:
Открой свой скрипт в блокноте далее файл / сохранить как / снизу увидишь кодировка


Попробуй пересохранить свой index.php в UTF-8
fullzero Отправлено: 30 Мая, 2012 - 20:28:49 • Тема: Составьте таблички за меня • Форум: SQL и Архитектура БД

Ответов: 19
Просмотров: 162
Доброго времени суток. Голова совсем пухнет уже.

EuGen я тут уже путаюсь. albums_tracks и albums я решил отложить до лучших времён. Оставлю только authors(id, name, description), tracks(id, name, description) и authors_tracks(author_id, track_id).

EuGen пишет:
Однако возможны ситуации, когда добавляется новая композиция уже существующего автора (и, возможно, в существующий альбом) - тогда это будет только запись в таблицу композиций, таблицу-связку между авторами и композициями и в связку между композициями и альбомами.


У меня как раз такая ситуация Радость Придётся сначала автора создать а потом уже добавлять треки. Немного муторно будет Ниндзя

Вопрос: Как занести данные в 3 таблицы разом? Делать каждый запрос отдельно по очереди или можно как нибудь одним?

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB