Помощ за изчистване на стойности между тагове с str_replace

maxaffey

Registered
Здравейте,

взимам данни от един сайт с file_get_contents и сега чистя част от ненужната информация с str_replace но така чситя отделни символи а искам да изчистя направо ненужната информация между някакви тагове.

правя следните опити да изчистя съдържанието между <td class="linesTotals"> и </td>:

Код:
$mach[$i] = str_replace('#<td class="linesTotals">/<.+>(.+)<\/.+>/</td>#', "", $mach[$i]);

или

Код:
$mach[$i] = preg_replace('#(<td class="linesTotals">)/<.+>(.+)<\/.+>/(</td>)#', "", $mach[$i]);

или

Код:
$mach[$i] = ereg_replace('#<td class="linesTotals">(.*?)</td>#is', "", $mach[$i]);

но нищо не се получава, даже незнам кой от начините е близо до истината, защото тези начини съм ги намерил из интернет но нищо.... :roll:
 
няма нужда да чистиш таговете .. направо си земи самата информация ..

Код:
preg_match_all("/<td class="linesTotals">(.+)<\/td>/", $string, $matches);

print_r($matches);
 
Измислих го !!!! :D

става с :


Код:
$mach[$i] = preg_replace('#<td class="linesTotals"[^>]*>.*?</td>#si', '', $mach[$i]);


Защо винаги така става, мъча се 2,3 часа, какво ли не пробвам и накрая решавам да пусна тема и да питам някой по-знаещ и докато чакам отговор намирам сам решение за 5 минути!!! :shock:
 
M1tq96 каза:
няма нужда да чистиш таговете .. направо си земи самата информация ..

Код:
preg_match_all("/<td class="linesTotals">(.+)<\/td>/", $string, $matches);

print_r($matches);

Мерси, че се отзова. Аз взимам повече информация, защото така като я изчистя ми става информация за 3 различни неща на 3 отделни реда и така ги разделям на още 3 променливи и ги слагам в други колони на MySQL таблица! Малко сложен начин съм избрал и съм 100% сигурен, че има и по лесен и бърз но до толкова ми стигат знанията.
 
ereg_replace не знам дали си забелязъл, но тази функция е премахната от php 5.3.0 http://php.net/manual/en/function.ereg-replace.php

Според мен решението ти ще е с preg_replace

PHP:
$mach[$i] = preg_replace(""/\<td class='linesTotals'\>(.+?)<\/td\>/is", " ", $mach[$i]);

Мисля че така трябва да стане. Ако дава някаква грешка кажи, че ей сега станах и все още съм някакъв заспал и може да съм обуркал нещо :D

ЕДИТ: // май са ме изпреварили :D
 

Горе