PHP.SU

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

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

> Найдено сообщений: 7
andreizanik Отправлено: 16 Мая, 2013 - 16:56:08 • Тема: Не правильно отображается текст из бд • Форум: Работа с СУБД

Ответов: 1
Просмотров: 1196
Здравствуйте. Начал изучать MySQL и столкнулся с такой проблемой.
Русский текст извлеченный из БД отображается как куча таких вопросов ���
С цифрами и английским текстом все в порядке.
Кодировки там и там одинаковые UTF-8. В чем может быть проблема
P.S.: Делаю все на денвере

Вот скрипты
CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Книжный магазин - Поиск</title>
  5. </head>
  6. <body>
  7. <h1>Книжный магазин -Поиск</h1>
  8.  
  9. <form action="results.php" method="post">
  10.     Выберети критерий поиска: <br/>
  11.     <select name="searchtype">
  12.         <option value="author">По Автору</option>
  13.         <option value="title">По названию</option>
  14.         <option value="isbn">По ISBN</option>
  15.     </select>
  16.     <br/>
  17.     Ведите информацию для поиска:<br/>
  18.     <input type="text" name="searchterm"/><br/>
  19.     <input type="submit" name="submit" value="Найти"/>
  20. </form>
  21.  
  22. </body>
  23. </html>


results.php
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3.     <title>Книжный магазин - Поиск</title>
  4.     <meta  content="text/html; charset=utf-8" />
  5. </head>
  6. <body>
  7. <h1>Книжный магазин -Поиск</h1>
  8. <?PHP
  9. $searchtype = $_POST['searchtype'];
  10. $searchterm = $_POST['searchterm'];
  11. if (!$searchtype || !$searchterm){
  12.     echo 'Не ввели параметры поиска. <br/> Вернитесь обратно и повторите попытку';
  13.     exit;
  14. }
  15.  
  16. $searchtype = addslashes($searchtype);
  17. $searchterm = addslashes($searchterm);
  18.  
  19. @ $db = new mysqli('localhost', 'tim', 'tim', 'books');
  20.     echo 'Произошла ошибка при подключении к БД';
  21.     exit;
  22. }
  23. $query = "SELECT * FROM books WHERE ".$searchtype." like '%".$searchterm."%'";
  24. $result = $db->query($query);
  25. $num_results = $result->num_rows;
  26.  
  27. echo "<p>Найдено книг: ".$num_results."</p>";
  28.  
  29. for ($i = 0; $i < $num_results; $i++){
  30.     $row = $result->fetch_assoc();
  31.     echo "<p><strong>".($i+1).". Название: ";
  32.     echo htmlspecialchars(stripslashes($row['title']))."</strong></p>";
  33.     echo " Автор: ";
  34.     echo htmlspecialchars(stripslashes($row['author']));
  35.     echo " ISBN: ";
  36.     echo htmlspecialchars(stripslashes($row['isbn']));
  37.     echo " Цена: ";
  38.     echo htmlspecialchars(stripslashes($row['price']));
  39.     echo "</p>";
  40. }
  41. $result->free();
  42. $db->close();
  43. ?>
  44. </body>
  45. </html>
  46.  

Так же поиск выполняется правильно если ищу по ISBN если ищу по названию или автору (русскому), ничего не находит, хотя такие книги в БД присутствуют, а вот аглийскими находит. Это скорее всего связано с кракозябрами
andreizanik Отправлено: 03 Мая, 2013 - 17:03:33 • Тема: Проблемы с DOMDocument • Форум: XML и его обработка

Ответов: 8
Просмотров: 9702
Решил проблему.
PHP:
скопировать код в буфер обмена
  1. $doc = new DOMDocument();
  2.         @$doc->loadHTML($this->content);
  3.         $urls = $doc->getElementsByTagName('a');
  4.         foreach ($urls as $url) {
  5.            $urlarray[] = $url -> getAttribute('href');
  6.         }
  7.  
  8.         return $urlarray;
  9.  


Зря только тему создавал, запаниковал не разобравшись.
andreizanik Отправлено: 03 Мая, 2013 - 16:49:06 • Тема: Проблемы с DOMDocument • Форум: XML и его обработка

Ответов: 8
Просмотров: 9702
Здравствуйте. Для обработки HTML документа использую DOMDocument.
Мне нужно достать все ссылки из документа в массив.
делаю так.
PHP:
скопировать код в буфер обмена
  1. $doc = new DOMDocument();
  2.         $doc->loadHTML($this->content);
  3.         $url[] = @$doc->getElementsByTagName('a')->item( 1 )->getAttribute('href');

$this->content - это строка которая содержит HTML.
Но получаю вот что
PHP:
скопировать код в буфер обмена
  1. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Misplaced DOCTYPE declaration in Entity, line: 14 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65
  2.  
  3. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseStartTag: misplaced <html> tag in Entity, line: 15 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65
  4.  
  5. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseStartTag: misplaced <head> tag in Entity, line: 16 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65
  6.  
  7. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: expecting ';' in Entity, line: 119 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65
  8.  
  9. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseStartTag: misplaced <body> tag in Entity, line: 165 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65
  10.  
  11. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag noindex invalid in Entity, line: 372 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65
  12.  
  13. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Unexpected end tag : label in Entity, line: 426 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65
  14.  
  15. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Unexpected end tag : label in Entity, line: 456 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65
  16.  
  17. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Unexpected end tag : label in Entity, line: 486 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65
  18.  
  19. Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Unexpected end tag : label in Entity, line: 516 in Z:\home\localhost\www\SiteParser\SearchContent.php on line 65
  20. array(1) { [0]=> string(6) "aktsii" }

Одну ссылку все -же он находит. array(1) { [0]=> string(6) "aktsii" }, Но что за куча ошибок и как их исправить?
(Добавление)
А хотя эти ошибки скорее всего из-за не валидного HTML. Ставлю @ и все норм.

Но как сделать что-бы найти все ссылки а не только первую?
andreizanik Отправлено: 16 Апреля, 2013 - 16:58:03 • Тема: Помогите с написанием регулярки • Форум: Регулярные выражения

Ответов: 9
Просмотров: 350
esterio а как site\.ru заменить так чтобы там мог стоять любой домен?
andreizanik Отправлено: 16 Апреля, 2013 - 16:13:56 • Тема: Помогите с написанием регулярки • Форум: Регулярные выражения

Ответов: 9
Просмотров: 350
nerv пишет:
ну отфильтруй их потом, в чем проблема?

И как я в массиве совершенно разных урлов найду те которые нужны мне?
(Добавление)
Еще прошу помочь с регуляркой для поиска информации заключенной в
CODE (html):
скопировать код в буфер обмена
  1. <td align="right" width="70">ИНФОРМАЦИЯ</td>
andreizanik Отправлено: 16 Апреля, 2013 - 16:02:00 • Тема: Помогите с написанием регулярки • Форум: Регулярные выражения

Ответов: 9
Просмотров: 350
nerv А как еще можно из кучи ненужного текста достать именно те урлы которые встречаются в
CODE (html):
скопировать код в буфер обмена
  1. <a name="site.ru" target="_blank" onclick="cl(this)" href="http://www.site.ru/">Сайт Site.ru</a>


Регулярка, которую вы предлагаете, будет забирать и обычные урлы, не стоящие в вышеуказанно конструкции.
andreizanik Отправлено: 16 Апреля, 2013 - 15:55:56 • Тема: Помогите с написанием регулярки • Форум: Регулярные выражения

Ответов: 9
Просмотров: 350
Здравствуйте.
Есть строка, в которой есть несколько ссылок такого вида
CODE (html):
скопировать код в буфер обмена
  1. <a name="site.ru" target="_blank" onclick="cl(this)" href="http://www.site.ru/">Сайт Site.ru</a>

Мне нужно достать из этой строки все урлы http://www[dot]site[dot]ru/
Использую функцию preg_match_all() , но к сожалению в регулярках я не силен, поэтому не могу написать правильную. Помогите пожалуйста.
Заранее благодарен.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB