PHP Получить все теги img из папки файлов HTML в таблице HTML. Добавьте функцию Click в каждой строке, чтобы разрешить изменение - PullRequest
0 голосов
/ 02 мая 2018

Мне нужна помощь с кодом, который я потратил несколько дней, пытаясь решить.

У меня есть папка «modules» с десятками файлов, которые содержат теги imag. Мне нужно извлечь все теги изображений (scr / alt) из всех файлов и вывести их в таблицу со ссылкой для редактирования строки, как в примере ниже:

действие файла scr alt ------- -------- -------- -------

index.html - images / error.png - ошибка - редактировать теги

products - images / product.jpg - product - изменить теги

Когда вы нажимаете «изменить», открывается всплывающее окно, дающее пользователю возможность редактировать информацию. Пока я могу получить все теги изображений, перечисленные в таблице, но я не знаю, как выполнить редактирование. Может ли кто-нибудь, пожалуйста, помогите .. спасибо заранее.

Вот что я сделал до сих пор:

    //To get array of file with image tags from directory

    while (false !== ($file = $dir->read()))
    {   
        if ($file != '.' && $file != '..')
        {
            // Is this entry a file or directory?
            if (is_file($path . '/' . $file))
            {
                // Its a file, lets push the files in an array
                $files = ($path . '/' . $file);

               // a new dom object & load the html into the object
               $dom = new DOMDocument();
               $html_string = file_get_contents($files);
               @$dom->loadHTML($html_string);

               // return number of tags in page
               $numtag = $dom->getElementsByTagName('img')->length; 
               if($numtag>0)
               {
                   //put files with img tag in an array
                   $filewithimgtag[] = $files;
               }
           }    
       }
    }
    $dir->close();



    //To get the tags from each files

    foreach($filewithimgtag as $key=>$eachfilewithtag)
    {
        // load the html of files with img tag into the object
        $domm = new DOMDocument();
        $htmlstring = file_get_contents($eachfilewithtag);
        @$domm->loadHTML($htmlstring);

        // return number of tags in page
        $arraythis[$eachfilewithtag]['qty'][] = $domm->getElementsByTagName('img')->length;

        // return the tags in page
        $taggers = $domm->getElementsByTagName('img');

        $arrayImage[$key]['file'][] = $eachfilewithtag;

        foreach ($taggers as $tagger) 
        {
            $arrayImage[$key]['scr'][] .= $tagger->getAttribute('src');
            $arrayImage[$key]['alt'][] .= $tagger->getAttribute('alt');
        }

    }

1 Ответ

0 голосов
/ 02 мая 2018

Я думаю, вам нужно получить имя файла с помощью src, чтобы вы могли легко находить и изменять его в одном файле, а при редактировании данных изображения просто передавайте путь к файлу и индекс тега img, получайте теги img из файла до указанного индекса и обновляйте этот img. тег

 foreach($filewithimgtag as $key=>$eachfilewithtag)
    {
        // load the html of files with img tag into the object
        $domm = new DOMDocument();
        $htmlstring = file_get_contents($eachfilewithtag);
        @$domm->loadHTML($htmlstring);

        // return the tags in page
        $taggers = $domm->getElementsByTagName('img');

        foreach ($taggers as $tagger) 
        {
            $arraythis[$eachfilewithtag]['images'][] = array(
               'src'=>$tagger->getAttribute('src'),
               'alt' =>$tagger->getAttribute('alt')
            )
        }

    }

итерируйте массив $ this в таблице

 <table>
        foreach($arraythis as $file => $filesArr){
           foreach ($filesArr['images'] as $key => $image) {
              <tr><td>echo $image['src']</td><td>echo $image['alt']</td><td>got 
               to edit function($file, $key)</td></tr>
           }
        }
   </table>
    findimgetochangeData($file, $index){
         $domm = new DOMDocument();
         $htmlstring = file_get_contents($file)
         @$domm->loadHTML($htmlstring);
         $taggers = $domm->getElementsByTagName('img');
         // you can find your selected tag change data of $taggers[$index]
       }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...