Php как изменить html

Изменить атрибут html с помощью php

У меня есть строка html, содержащая в ней ровно один a-элемент. Пример:

В php мне нужно проверить, содержит ли rel внешние и если да, то измените href и сохраните строку.

Я искал узлы и объекты DOM. Но они кажутся слишком сильными только для одного элемента A, поскольку я должен итерации, чтобы получить html-узлы, и я не уверен, как проверить, существует ли rel и содержит внешние .

$html = new DOMDocument(); $html->loadHtml($txt); $a = $html->getElementsByTagName('a'); $attr = $a->item(0)->attributes(); . 

На этом этапе я собираюсь получить NodeMapList, который кажется накладным. Есть ли более простой способ для этого или я должен делать это с DOM?

Есть ли более простой способ для этого или я должен делать это с DOM?

Сделайте это с помощью DOM.

test'; $dom = new DOMDocument; $dom->loadHTML($html); $xpath = new DOMXPath($dom); $nodes = $xpath->query("//a[contains(concat(' ', normalize-space(@rel), ' '), ' external ')]"); foreach($nodes as $node) < $node->setAttribute('href', 'http://example.org'); > echo $dom->saveHTML(); 

Лучший способ – использовать парсер HTML / DOM, но это решение регулярных выражений:

$html = 'test 

Some text

test2
test3 ]*>/i', function($m) < if(strpos($m[1], 'external') !== false)< $m[0] = preg_replace('/href\s*=\s*(("[^"]*")|(\'[^\']*\'))/i', 'href="http://example.com"', $m[0]); >return $m[0]; >, $html); echo $new;

Я продолжал изменять с помощью DOM. Это то, что я получаю:

$html = new DOMDocument(); $html->loadHtml('' . $txt); $nodes = $html->getElementsByTagName('a'); foreach ($nodes as $node) < foreach ($node->attributes as $att) < if ($att->name == 'rel') < if (strpos($att->value, 'external')) < $node->setAttribute('href','modified_url_goes_here'); > > > > $txt = $html->saveHTML(); 

Я не хотел загружать любую другую библиотеку только для одной строки.

Вы можете использовать регулярное выражение, например, if it matches /\s+rel\s*=\s*».*external.*»/ затем замените /(]*>)/\1[your new href here]\3/ как /(]*>)/\1[your new href here]\3/

Хотя использование библиотеки, которая может делать такие вещи для вас, намного проще (например, jquery для javascript)

Источник

Редактирование html страниц посредством php

html файл с информацией .
Нужно создать страничку edit.php где можно выбрать любой html файл в папке pages открыть отредактировать и сохранить, либо как то другим алгоритмом (edit.php) Подскажите как пожалуйста

Редактирование HTML посредством PHP
Здравствуйте гуру веб-разработки. Сразу предупреждаю я новичок в этом деле!! Возник такой.

Вывод текста на html посредством php
Имеется html страничка index.html где прописан вызов php файла <—какой-то html код—> <div.

Как, использующие php, сайты имеют расширение страниц html, но не php?
Сабж. Собственно говоря, сайты наверняка построены с использованием PHP, но при этом страница может.

Html и PHP. Не пойму как считать данные с html форм в PHP.
Прошу не ругаться. Но что то я не пойму. Ну например в PHP указывают файл: <?php $file =.

Лучший ответ

Сообщение было отмечено как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
if(!empty($_GET['edit_page'])) { $content = file_get_contents('pages/'.$_GET['edit_page'].'.html'); // форму и кнопку сделаешь сам echo ''; }

В итоге у нас в текстовом поле содержимое страницы. Далее в этом же поле можно отредактировть что нужно (можно к полю прикрутить визуальный редактор для удобства)
3. При нажатии на кнопку «сохранить» — сохраняем изменения

// в обработчике или в этом же файле if(isset($_POST['имя кнопки в форме'])) { $cont = $_POST['content']; $status = file_put_contents('pages/'.$_GET['edit_page'].'.html', $cont); if($status) echo 'ok'; else echo'fail'; }

ЦитатаСообщение от TBIKC Посмотреть сообщение

Можно это зделать через базу MySql. Занести все тексты в неё и присвоить им id. Далее с помощью php вывести их из базы на экран

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
include ('cf.php'); $qtext = mysql_query("SELECT text FROM pages where >); $rows = mysql_num_rows($qtext); $fields = mysql_num_fields($qtext); echo "
"; for ($c=0; $c$rows; $c++) { for ($cc=0; $cc$fields; $cc++) { $text = mysql_result($qtext, $c, $cc); echo $text; echo "\n"; } } echo "

";

Редактировать можно элементарно с помощью запроса UPDATE.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38

Редактирование главной страницы сайта



Сейчас текст главной тсраницы выглядит так:



//файл с вашими настройками подключения к серверу include ('cf.php'); //Делаем запрос. Получаем ответ и присваеваем его $b. Выводим на экран. $q = mysql_query("SELECT text FROM pages where >); $rows = mysql_num_rows($q); $fields = mysql_num_fields($q); echo "
"; for ($c=0; $c$rows; $c++) { for ($cc=0; $cc$fields; $cc++) { $b = mysql_result($q, $c, $cc); echo mysql_result($q, $c, $cc)."\t"; echo "\n"; } } echo "

"; echo

Редактировать:

HERE; //создаём форму с отправкой данных в файл action. echo "

"; echo ""; //вместо кнопка подставте своё значение(по желанию). echo ""; echo "

"; ?>

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
 include ('cf.php'); //обнавляем базу if (isset($_POST['KNOPKA'])) { $e= $_POST["text"]; $q= "UPDATE text SET pages = '$e' WHERE ;"; mysql_query($q); //Делаем переадресацию на какую то страничку. header("Location:yes.html"); } ?>

Вот и всё. (это самый простой вариант оброботчика и скрипта.)

ОФФТОП: Если не жалко нажми +1

Источник

Изменение html кода.

Есть html код который в ручную редактировать не удобно. Хочу сделать этот процесс более удобным.
Как с помощью php можно сделать страничку в которой можно будет ввести описание чего либо, прикрепить изображение и нажав на кнопку отправить, это описание и изображение добавлялось к главной странице после тега ?

Изменение текущего html кода
Привет! Есть html код: <head> <meta http-equiv="Content-Type" content="text/html;.

Изменение html-кода страницы через свой сайт
Есть социальная сеть, где пользователи оставляют к статьям комментарии. Требуется какие-то скрыть.

Сохранение HTML кода в html файл c использыванием php
Я создавал регистрацию на php+html+css . Сделал форму (она под спойлером ) <div.

Изменение HTML кода в joomla
Привет всем возникла такая проблема. В шаблоне необходимо исправить HTML код. Ну это понятно, что.

Надо полностью заменить код между тегами или просто к существующему коду добавить сверху ?

Покажите html-шаблон того что надо добавить.
И вообще поподробнее бы рассказали.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
html> head> /head> body> div id="Site"> div id="Heading"> /div> div id="Menu">   include ("Menu.html"); ?> /div> div id="Programma"> /div> /div> /body> /html>

Надо сделать форму с полем ввода текста, полем выбора фотки на компе, и кнопочки отправки формы.
Ресайз изображения делать не надо и проверять на то что это действительно изображение тоже не надо так как Вы лично будите этим пользоваться.
Скопировать изображение в определенную папку.
Составить что то типа:

ЦитатаСообщение от evgentus Посмотреть сообщение

Я понял Вас так.
Надо сделать форму с полем ввода текста, полем выбора фотки на компе, и кнопочки отправки формы.
Ресайз изображения делать не надо и проверять на то что это действительно изображение тоже не надо так как Вы лично будите этим пользоваться.
Скопировать изображение в определенную папку.
Составить что то типа:

и вставить это между

Так?

ЦитатаСообщение от evgentus Посмотреть сообщение

Если все правильно понял то вот.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
 define("FILE", 'index.html'); define("UPLOAD_FOLDER", 'upload/'); $text = '    
include ("Menu.html"); ?>
'; $_text = '
'; function uploadImage($file, $name) { $urlImage = UPLOAD_FOLDER . $name; return (move_uploaded_file($file, $urlImage))?$urlImage:false; } if (isset($_POST['upload'])){ if ($img = uploadImage($_FILES['image']['tmp_name'], $_FILES['image']['name'])){ $image = '
'
; $text = $text . $image . $_POST['text'] . $_text; echo (file_put_contents(FILE, $text))?'Всё ОК!':"Всё хреново:("; } else{ echo "Error!"; } } else{ echo "\"multipart/form-data\" action=\"add.php\" method=\"post\"> Введите текст

Выберите картинку
\"file\" name=\"image\">
\"submit\" name=\"upload\" value=\"Закачать\"> "; } ?>

скрипт в файл add.php, и в этой папке где add.php создаешь папку upload (или другую, ее название в UPLOAD_FOLDER в начале скрипта) в ней и будут картинки.
Написано на скоряк, нет проверок различных, имя файла лучше генерировать по другому а не использовать $_FILE[‘image’][‘name’] а сделать допустим так,

$filename = md5($_FILE['image']['name']. microtime()) . 'расширение';

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

Вот что выдал
Warning: move_uploaded_file(,image/COMODO.png): failed to open stream: No such file or directory in /home/o/ovsite.h18.ru/WWW/Editor.php on line 26

Warning: move_uploaded_file(): Unable to move ‘/var/tmp/phpNv7awk’ to ‘,image/COMODO.png’ in /home/o/ovsite.h18.ru/WWW/Editor.php on line 26
Error!
Может я что не правильно сделал
Вот файл html

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
html> head> title>Редактирование/title> link rel="stylesheet" type="text/css" href="index.css"> /head> body> div id="Site"> div id="Heading"> /div> div id="Menu"> /div> div id="Programma"> form enctype="multipart/form-data" action="Editor.php" method="post"> Изображениеbr /> input type="file" name="image">br /> input type="submit" name="upload" value="Добавить"> Описаниеbr /> textarea name=\"text\" cols=30 rows=5>/textarea>br /> /form> /div> /div> /body> /html>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
 define("FILE", 'index.html'); define("UPLOAD_FOLDER", ',image/'); $text = '    
include ("Menu.html"); ?>
'; $_text = '
'; function uploadImage($file, $name) { $urlImage = UPLOAD_FOLDER . $name; return (move_uploaded_file($file, $urlImage))?$urlImage:false; } if (isset($_POST['upload'])){ if ($img = uploadImage($_FILES['image']['tmp_name'], $_FILES['image']['name'])){ $image = '
'
; $text = $text . $image . $_POST['text'] . $_text; echo (file_put_contents(FILE, $text))?'Всё ОК!':"Всё хреново:("; } else{ echo "Error!"; } } else{ }

Добавлено через 6 минут
Нашёл ошибку, исправил, но возникла другая проблема.
После загрузки изображений и описания после нажимая на кнопку выдаёт просто белую страницу, а в файле index нечего не меняется.

Добавлено через 17 минут
Понял.
Нужно твой код добавить в index.php?

Добавлено через 1 минуту
А я сделал два отдельных файла Editor.php и Editor.html.

Источник

Как быстро из html переписать в php ?

Есть ли какие нибудь способы быстрой переписки кода ? может какие нибудь конверторы есть или статьи как все это сделать быстро.

daruwanov

Serj-One

Небольшое отступление. Предлагаю прочесть Капитал Маркса. Он там много рассуждает о том, что «быстро», «что-угодно» в «что-угодно» при нажатии одной кнопки лишено какой-либо стоимости.
Может быть, Маркс ответил уже давно на Ваш вопрос.

daruwanov

Я так понимаю вопрос немного в другом. У человека есть набор HTML. Так называемый статический сайт. Ему нужно сделать из него динамический. Что бы данные брались из базы.

daruwanov

Насчет сервисов, не скажу. Не знаю просто таких. Из тегов которые навешаны к вопросу, хотите перенести на wordpress? Если личного опыта работы с wordpress нет, на мой взгляд будет проще оплатить работу разработчика..

А в чём проблема? Чтобы перенести код из HTML в PHP нужно всего-лишь его скопировать, а потом вставить, ведь HTML — это язык разметки и он может использоваться в файлах PHP

XXX

Рома Покидаев Нужно хорошо знать CMS под которую Вы переделываете свой html-шаблон, чтобы прописать вывод соответствующих функций (блоки, меню, авторизация и т.д.). Посмотрите код, как сделан похожий шаб под Вашу CMS.

Если совсем не разбираетесь в теме, то быстро сделать сможете только заплатив программисту. На freelansim.ru поищите человека.

Источник

Читайте также:  Php get data class
Оцените статью