php выдернуть то, что написано между 'слово слово'

12
T
На сайте с 11.08.2005
Offline
181
#11

тут проще всего регулярку использовать...

какую именно - ответ здесь: http://phpclub.ru/detail/article/regexp_2

$data='

$h3 = \'Дешевый паркет - не лучшее решение\';

$straniza=\'statja\';

$nomer=\'02\';

';

if (isset($matches_ms)) {unset($matches_ms);}

$st='';

preg_match("~(?<=h3 = ')(.{1,}?)(?=')~si",$data,$matches_ms);

if (isset($matches_ms[1]) && strlen($matches_ms[1])>0)

{

$st=trim($matches_ms[1]);

}

echo 'st = '.$st;

veleg
На сайте с 30.01.2011
Offline
142
#12

Делал как то парсер. Вот повыдергивал код, для вашей задачи достаточным будет.


$url = file("url.php");

$start = '<div class="post-content">';

//Конечный тег участка кода для парсинга

$finish = '<p><div class="addthis_toolbox addthis_default_style addthis_32x32_style">';


$content = file_get_contents($url);

//Ищем позицию с которой мы будем вырезать код для дальнейшего использования

$position = strpos($content, $start);

//Вырезаем нужный блок

$content = substr($content, $position);

$position = strpos($content, $finish);

//Вырезаем код

$content = substr($content, 0, $position);


Фигачу Телеграм-ботов ( https://teleg.run/veleg )
P
На сайте с 06.01.2009
Offline
601
#13

veleg, спасибо.

Не уверен что получится, ведь у меня старт от сюда

$h3 = '

а финиш это

';

Но вечером попробую.

---------- Добавлено 12.07.2012 в 18:37 ----------

LEOnidUKG:
Вам именно на PHP или можно в блокноте notepad++ регулярку?

У меня скрипт на php, поэтому хотелось бы в скрипт дописать то что поможет решить мою задачу. Спасибо

---------- Добавлено 12.07.2012 в 18:41 ----------

Если кто знает, помогите настроить preg_match_all.

Есть ячейка массива $qwert[3] в ней записана 3-я строка кода из файла *.php

$h3 = ' массивная доска';

надо просто что то сделать с $qwert[3] чтобы в $string записать то что между кавычками, только и всего. СПасибо ещё раз. Просто вроде понятнее сформулировал, что мне нужно.

---------- Добавлено 12.07.2012 в 18:42 ----------

uberchel:
$text = "I don t know EnglishКирилицаI don t know English";


preg_match("/([а-я](.*)[а-я])/i", $text, $result);

echo $result[1];


Найдет Кирилица (Руские символы)

Вот спасибо, не заметил сразу. А как быть с "ё" ?

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#14
postavkin:


Вот спасибо, не заметил сразу. А как быть с "ё" ?

preg_match("/([а-яёЁ](.*)[а-яёЁ])/i", $text, $result);

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
P
На сайте с 06.01.2009
Offline
601
#15
LEOnidUKG:
preg_match("/([а-яёЁ](.*)[а-яёЁ])/i", $text, $result);

А никак этот код не приспособить к выдергиванию того что между 'кавычек' ?

У меня никак не получается. Спасибо

preg_match("~'(.*?)'~is", $text, $result);

так выдергивает, всё ок, только вот ошибку пишет

Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 5 in /home/...
LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#16

Влом думать, как в 1 регулярку сделать, поэтому вот так:

<?

$text = "\$h3 = 'Дешевый паркет sdfsdf SSS dddddddddd- не лучшее решение';";

preg_match("@'(.*?)'@ism", $text, $result);

$out=preg_replace('@[a-z]@smi','',$result[1]);

echo $out;

?>

P
На сайте с 06.01.2009
Offline
601
#17

Ребят, сделал так как смог, а именно


$result = explode("'", $text);
echo "<br>$result[1]<br>";

В результате получилось выдернуть то что нужно.

Нормальный вариант?

veleg
На сайте с 30.01.2011
Offline
142
#18

Если цель достигнута, если работает, то оставляй. :) Если конечно не для крупного портала там что-то пишешь, хотя не думаю.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий