PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (106): В начало « ... 51 52 53 54 [55] 56 57 58 59 ... » В конец
Найдено сообщений: 1581
Строитель
Отправлено: 08 Июня, 2017 - 21:59:51 • Тема: Как записать картинки из переменной в phpQuery? • Форум: Вопросы новичков
Ответов: 47 Просмотров: 1295
webdeveloperrr , если очень обобщить , то код будет выглядеть примерно так:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
// Сохраняем наш код в функцию
function getData( $url ) {
$csv = 'file.csv' ; // Название вашего CSV-файла
$texts = [ ] ;
$files = [ ] ;
$i = 0 ; // Переменная-счётчик
$doc = phpQuery:: newDocument ( $file ) ;
foreach ( $doc -> find ( '.listing-card' ) as $article ) {
$article = pq( $article ) ;
$img = $article -> find ( '.listing-thumb img' ) -> attr ( 'src' ) ;
$text = $article -> find ( ".listing-basicinfo 'p' " ) ;
$link = $article -> find ( 'a' ) -> attr ( 'href' ) ;
$img2 = $article -> find ( '.listing-thumb img' ) -> attr ( 'src' ) ;
$text2 = $article -> find ( ".listing-basicinfo 'p' " ) ;
echo "<img src='$img '>" ;
echo $link ; '<br>' ;
echo $text ;
echo '<hr>' ;
$file = 'img/' . $time . ++ $i . '.jpg' ;
$texts [ ] = $text ;
$files [ ] = $file ;
$result = mysql_query ( "INSERT INTO pars (img,img2,name,name2) VALUES ('$file ', '$text ')" ) ;
if ( $result == 'true' ) {
echo "<p>succes!</p>" ;
} else {
echo "<p>fall!</p>" ;
}
}
$list = [
$texts ,
$files
] ;
foreach ( $list as $fields ) {
}
// Возвращаем ссылку
return $link ;
}
// Если был переход по ссылке
if ( isset ( $_GET [ 'data' ] ) ) { // Принимаем данные *
// Передаём данные нашей функции (для записи в файлы и БД)
getData( $data ) ;
} else {
// По умолчанию парсим как обычно
$url = 'http://site.ru/index.php?page=search&sCategory=110' ;
// Наша функция вернёт ссылку
$link = getData( $url ) ;
// Эту ссылку мы пропишем в теге и выведем в браузер
echo '<a href="?data=' . $link . '">' . $link . '</a>' ;
}
Имейте ввиду, это принцип, а не готовое решение.
Строитель
Отправлено: 08 Июня, 2017 - 17:51:34 • Тема: Как записать картинки из переменной в phpQuery? • Форум: Вопросы новичков
Ответов: 47 Просмотров: 1295
webdeveloperrr пишет: Строитель пишет: Теоретически, сохранить код выборки в пользовательскую функцию, проверять гет параметры из строки запроса, и если был переход по ссылке, то вызывать нашу функцию с выборкой, передавая на её вход айди из строки запроса.
Вы не могли бы помочь с кодом?
Могу попробовать, но мне нужно и ваше участие. Вы говорите, что в результат добавилась ссылка - в какой переменной она сейчас сохранена?
Строитель
Отправлено: 08 Июня, 2017 - 08:54:17 • Тема: Как записать картинки из переменной в phpQuery? • Форум: Вопросы новичков
Ответов: 47 Просмотров: 1295
Теоретически, сохранить код выборки в пользовательскую функцию, проверять гет параметры из строки запроса, и если был переход по ссылке, то вызывать нашу функцию с выборкой, передавая на её вход айди из строки запроса.
Строитель
Отправлено: 08 Июня, 2017 - 00:18:28 • Тема: Выбрать из папки только изображения • Форум: Вопросы новичков
Ответов: 7 Просмотров: 411
zapatronen пишет: подскажите это функция есть такая чтобы только фото выбирало
Попробуйте этот пример: Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$dir = 'img' ; // Папка с картинками
findImages( $dir ) ;
function findImages( $dir ) {
$extentions = [ 'jpg' , 'png' , 'gif' ] ; // Расширения для поиска
while ( ( $file = readdir ( $dh ) ) !== false ) { echo '<img src="' . $dir . '/' . $file .
'" width="50" height="50">' ;
}
}
}
}
}
Строитель
Отправлено: 07 Июня, 2017 - 17:58:02 • Тема: Выбрать из папки только изображения • Форум: Вопросы новичков
Ответов: 7 Просмотров: 411
zapatronen , похоже что эта функция будет выводить всё, что найдёт в папке. Как вариант можно добавить проверку расширений.
На счёт "спасибо" - кнопка станет доступна после 50-и постов.
Строитель
Отправлено: 07 Июня, 2017 - 00:15:23 • Тема: Как записать картинки из переменной в phpQuery? • Форум: Вопросы новичков
Ответов: 47 Просмотров: 1295
webdeveloperrr , и ещё один совет - нужно избегать запросов к базе данных внутри циклов. У вас сейчас запись выглядит так:
$result = mysql_query ("INSERT INTO pars (img,name) VALUES ('$file', '$text')");
Её лучше вынести за пределы цикла. В цикле только "собрать" параметры для sql-запроса (пример): Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
header ( 'Content-type: text/html; charset=utf8' ) ;
require 'curl/curl.php' ;
require 'phpquery/phpQuery/phpQuery.php' ;
include 'db.php' ;
$csv = 'file.csv' ; // Название вашего CSV-файла
$texts = [ ] ;
$files = [ ] ;
$query = [ ] ;
$i = 0 ;
$url = 'http://www.site.ru/news' ;
$doc = phpQuery:: newDocument ( $file ) ;
foreach ( $doc -> find ( '.articles-container .post-excerpt' ) as $article ) {
$article = pq( $article ) ;
$img = $article -> find ( '.img-cont img' ) -> attr ( 'src' ) ;
$text = $article -> find ( '.pd-cont' ) -> html ( ) ;
$file = 'img/' . $time . ++ $i . '.jpg' ;
$query [ ] = "VALUES ('$file ', '$text ')" ;
$texts [ ] = $text ;
$files [ ] = $file ;
}
$list = [
$texts ,
$files
] ;
foreach ( $list as $fields ) {
}
$sql = 'INSERT INTO `pars` (`img`, `name`) ' . join ( ', ' , $query ) ;
echo ( mysql_query ( $sql ) ?
'<p>Succes!</p>' : '<p>Fall!</p>' ) ;
Строитель
Отправлено: 06 Июня, 2017 - 23:34:08 • Тема: Как записать картинки из переменной в phpQuery? • Форум: Вопросы новичков
Ответов: 47 Просмотров: 1295
Попробуйте этот вариант Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
header ( 'Content-type: text/html; charset=utf8' ) ;
require 'curl/curl.php' ;
require 'phpquery/phpQuery/phpQuery.php' ;
include 'db.php' ;
$csv = 'file.csv' ; // Название вашего CSV-файла
$texts = [ ] ;
$files = [ ] ;
$i = 0 ; // Переменная-счётчик
$url = 'http://www.site.ru/news' ;
$doc = phpQuery:: newDocument ( $file ) ;
foreach ( $doc -> find ( '.articles-container .post-excerpt' ) as $article ) {
$article = pq( $article ) ;
$img = $article -> find ( '.img-cont img' ) -> attr ( 'src' ) ;
$text = $article -> find ( '.pd-cont' ) -> html ( ) ;
$file = 'img/' . $time . ++ $i . '.jpg' ;
$texts [ ] = $text ;
$files [ ] = $file ;
$result = mysql_query ( "INSERT INTO pars (img,name) VALUES ('$file ', '$text ')" ) ;
if ( $result == 'true' ) {
echo "<p>succes!</p>" ;
} else {
echo "<p>fall!</p>" ;
}
}
$list = [
$texts ,
$files
] ;
foreach ( $list as $fields ) {
}
Строитель
Отправлено: 06 Июня, 2017 - 21:01:57 • Тема: Как записать картинки из переменной в phpQuery? • Форум: Вопросы новичков
Ответов: 47 Просмотров: 1295
webdeveloperrr пишет: в СSV запись пошла все нормально. а картинки заменяют друг друга
Для картинок нужно изменить алгоритм определения имени. Счётчик, который я написал вчера, при каждом запуске скрипта стартует сначала, и так как картинка с именем 1_img.png уже была создана ранее, то при повторном запуске она перезаписывается.
Названия для картинок можно использовать "родные", можно генерировать какую-то уникальную строку, выбор за вами.
Строитель
Отправлено: 06 Июня, 2017 - 08:37:38 • Тема: Как записать картинки из переменной в phpQuery? • Форум: Вопросы новичков
Ответов: 47 Просмотров: 1295
Parse error: syntax error, unexpected '[' - Это говорит о том, что версия пхп на вашем хосте не поддерживает сокращённый синтаксис объявления массивов. Надо или поднять версию пхп до 5.4, или записать объявления массивов по старому:
$text = array();
На счёт перезаписи - нужно пооперировать флагами в аргументе функции fopen(), вместо 'w' установите 'a', но кроме этого ещё понадобится проверка на одинаковые записи.
Строитель
Отправлено: 06 Июня, 2017 - 00:13:04 • Тема: Как записать картинки из переменной в phpQuery? • Форум: Вопросы новичков
Ответов: 47 Просмотров: 1295
webdeveloperrr пишет: две переменные $img и $text cохранить в csv
Сохранить их в массив, а потом этот массив в цикле записать в файл. Пример написать?
(Добавление)
Пример: Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$csv = 'file.csv' ; // Название вашего CSV-файла
$i = 0 ; // Переменная-счётчик
$texts = [ ] ;
$files = [ ] ;
$doc = phpQuery:: newDocument ( $file ) ;
foreach ( $doc -> find ( '.articles-container .post-excerpt' ) as $article ) {
$article = pq( $article ) ;
$img = $article -> find ( '.img-cont img' ) -> attr ( 'src' ) ;
$text = $article -> find ( '.pd-cont' ) -> html ( ) ;
$file = 'img/' . ++ $i . '_img.jpg' ;
$texts [ ] = $text ;
$files [ ] = $file ;
$result = mysql_query ( "INSERT INTO page (img,name) VALUES ('$file ', '$text ')" ) ;
if ( $result == 'true' ) {
echo "<p>succes!</p>" ;
} else {
echo "<p>fall!</p>" ;
}
}
$list = [
$texts ,
$files
] ;
foreach ( $list as $fields ) {
}
Страниц (106): В начало « ... 51 52 53 54 [55] 56 57 58 59 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB