Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с поиском текста 
V
    Опции темы
Slauta
  Дата 5.1.2010, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.5.2009
Где: Солигорск

Репутация: нет
Всего: нет



суть проблемы такова:
есть файл index.php
Код

...

<form action="savenew.php" method="POST">
Заголовок<br>
<input name="newtitle"><br>
Тело новости<br>
<textarea name="newbody" rows="5" cols="20"></textarea><br>
<input type="submit" name="" value="Сохранить">
<input type="reset" name="" value="Очистить">
</form>
...

и собственно сам файл savenew.php
Код

<?php
include 'users/logged.php';
include 'baza/gd.php';
#include 'baza/function.php';
include ("config.php");
$table="news";

# подключение к базе
$link = mysql_connect($host,$user,$pass) or die(mysql_errno($link).mysql_error($link));
$db = mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));
# подключились к базе

$newbody = $_POST['newbody'];
$newtitle = $_POST['newtitle'];
#$avtor = $_POST['avtor'];
$avtor = $_SESSION['user_name'];
$prev = $_POST['prev'];
$tag = $_POST['tag'];
$catid = $_POST['catid'];

if ( preg_match('/<img src="(.+)">/' , $newbody , $result2) ){
  $f2 = str_replace ('<img src="', '', $result2[0]);
  $f2 = str_replace ('">', '', $f2);
  $lo = date("mdyHis");
  $gf= 'file/prev/'.$lo.'.jpg';
  gd($f2,$gf,'2','90','1');

}


#$sqlquery = "INSERT INTO news (NEWDATE, NEWTITLE, NEWTEXT, AVTOR, PREV, TAG, CATID) VALUES (NOW(), \"$newtitle\",\"$newbody\",\"$avtor\",\"$prev\",\"$tag\",\"$catid\")";
$sqlquery = "INSERT INTO news (NEWDATE, NEWTITLE, NEWTEXT, AVTOR, PREV, TAG, CATID,img) VALUES (NOW(), \"$newtitle\",\"$newbody\",\"$avtor\",\"$prev\",\"$tag\",\"$catid\",\"$gf\")";
$result = mysql_query($sqlquery,$link) or die(mysql_errno($link).mysql_error($link));

# отключаем от mysql
mysql_close($link);

header('Location: index.php');
echo $newdata;

?>


но функция preg_match не работает... В чём ошибка не пайму,  хотя в newbody присутствует <img src="1.jpg">???
если задать напрямую $newbody  = <img src="1.jpg">; то всё работает нормально, пробовал делать через $_REQUERY тож не получается...
Чё делать???
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
patap
Дата 5.1.2010, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



поменяй регулярку, (при твоей регулярке если будет два или более удовлетворяющих условий в одной строке, то будет не тот результат)
Код
<img src="(.*?)">


и может быть там с кавычками не клеется, попробуй
Код
$newbody = stripslashes($_POST['newbody']);



эта часть ни к чему... 
Код
$f2 = str_replace ('<img src="', '', $result2[0]);
$f2 = str_replace ('">', '', $f2);

посмотри что содержит $result2, выполнив print_r($result2) и сам все поймешь

Это сообщение отредактировал(а) patap - 5.1.2010, 18:22


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
brother79
Дата 6.1.2010, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



Цитата(Slauta @  5.1.2010,  17:17 Найти цитируемый пост)
 preg_match('/<img src="(.+)">/' , $newbody , $result2)


Надо что-то типа этого:

Код

preg_match('/\<img src="(.+?)"\>/' , $newbody , $result2)


А лучше 

Код

preg_match('/\<img src="([^"]+)"\>/' , $newbody , $result2)



Я правда не уверен, возможно надо проэкранировать кавычки, хотя это не логично, должны так работать.

Ну и честно сказать не вникал в весь код, твоё выражение найдёт только <img src="text">, т.е. лишний пробел или какой-то параметр у тега img и всё, не работает.

Цитата(Slauta @  5.1.2010,  17:17 Найти цитируемый пост)
 $f2 = str_replace ('<img src="', '', $result2[0]);
  $f2 = str_replace ('">', '', $f2);


А ещё есть 

preg_replace() можно эту замену ей делать smile



--------------------
PM MAIL WWW   Вверх
Slauta
Дата 6.1.2010, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.5.2009
Где: Солигорск

Репутация: нет
Всего: нет



Пасиб! Я всё работает! Проблема в кавычках была...
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.