How to get all TD values ​​through PHP and String functions

I need to get data from TD, and the variable is a string:

$string='<tr><td>abc</td><td>def</td><td>ghi</td></tr>';
echo $td_num = substr_count($string, '<td>');
for ($i=0;$i<$td_num;$i++)
{
echo "<br /><br />".$i."<br />";

$first_td[$i] = strpos($string, '<td>');
echo 'First position: '.$first_td[$i]."<br />"; 

$last_td[$i]=strpos($string, "</td>");
echo 'Last position: '.$last_td[$i]."<br />";

$td_value[$i]=substr($string,$first_td[$i],$last_td[$i]);

echo "TD Value: ".$td_value[$i]."<br />";   
echo $string_size = strlen($string)."<br />";

$string = substr($string,$last_td[$i]);
}

Result:

       3

       0
       First position: 4
       Last position: 11
       TD Value: abc45


       1
       First position: 5
       Last position: 0
       TD Value: 
       34


       2
       First position: 5
       Last position: 0 
       TD Value: 
       34

Please tell me why this does not work? How can I make it work? How to distinguish TD values ​​differently?

+4
source share
3 answers

DOMDocument can also be used with this:

$string = '<tr><td>abc</td><td>def</td><td>ghi</td></tr>';
$dom = new DOMDocument();
$dom->loadHTML($string);
foreach($dom->getElementsByTagName('td') as $td) {
    echo $td->nodeValue . '<br/>';
}

You can get the td values ​​with this: (sample output)

abc
def
GHI

+4
source

Consider a simplified link here . In your case, it will work something like this:

$html = str_get_html($string);
foreach ($html->find('td') as $td)
    echo $td->innertext."\n";
+1
source

\o/

( , , , , , , : P)

substr , @Jack ( , pos pos), , , , TD <td> 4 char, </td> 5; +4 pos, , 5 last_td substr, </td>.

:

$string='<tr><td>abc</td><td>def</td><td>ghi</td></tr>';

echo $td_num = substr_count($string, '<td>');

for ($i=0;$i<$td_num;$i++)
{
    echo "<br /><br />".$i."<br />";

    $first_td[$i] = strpos($string, '<td>') + 4; 
    $last_td[$i]  = strpos($string, '</td>');
    $td_value[$i] = substr($string,$first_td[$i],$last_td[$i]-$first_td[$i]);

    echo 'First position: '.$first_td[$i].'<br />';
    echo 'Last position:  '.$last_td[$i] .'<br />';
    echo 'TD Value: '.htmlentities($td_value[$i]).'<br />';   
    echo $string_size = strlen($string).'<br />';

    $string = substr($string,$last_td[$i]+5);
}

var_dump($first_td, $last_td, $td_value, $string);

, :

$string='<tr><td>abc</td><td>def</td><td>ghi</td></tr>';

$td_num = substr_count($string, '<td>');

for ($i=0;$i<$td_num;$i++)
{   
    $first_td = strpos($string, '<td>') + 4; 
    $last_td  = strpos($string, '</td>');
    $td_values[$i] = substr($string,$first_td,$last_td-$first_td);
    $string = substr($string,$last_td+5);

    echo 'TD Value ['.$i.'] => '.htmlentities($td_values[$i]).'<br />';
}

var_dump($td_values);

preg_match_all, .

$string='<tr><td>abc</td><td>def</td><TD>ghi</TD></tr>';

$matches = null;

if( preg_match_all('#<td>(.*)</td>#isU', $string, $matches) ){
    var_dump($matches[1]);
}
0

Source: https://habr.com/ru/post/1548294/


All Articles