Изменить атрибут 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.*»/ затем замените /(
Хотя использование библиотеки, которая может делать такие вещи для вас, намного проще (например, 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 '.$content.''; }
В итоге у нас в текстовом поле содержимое страницы. Далее в этом же поле можно отредактировть что нужно (можно к полю прикрутить визуальный редактор для удобства)
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 "
"; ?>
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 = '![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
'; $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\"> Введите текст
text\" cols=30 rows=5>
Выберите картинку
\"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 = '![](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
'; $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](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
![Serj-One](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Небольшое отступление. Предлагаю прочесть Капитал Маркса. Он там много рассуждает о том, что «быстро», «что-угодно» в «что-угодно» при нажатии одной кнопки лишено какой-либо стоимости.
Может быть, Маркс ответил уже давно на Ваш вопрос.
![daruwanov](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Я так понимаю вопрос немного в другом. У человека есть набор HTML. Так называемый статический сайт. Ему нужно сделать из него динамический. Что бы данные брались из базы.
![daruwanov](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Насчет сервисов, не скажу. Не знаю просто таких. Из тегов которые навешаны к вопросу, хотите перенести на wordpress? Если личного опыта работы с wordpress нет, на мой взгляд будет проще оплатить работу разработчика..
А в чём проблема? Чтобы перенести код из HTML в PHP нужно всего-лишь его скопировать, а потом вставить, ведь HTML — это язык разметки и он может использоваться в файлах PHP
![XXX](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
Рома Покидаев Нужно хорошо знать CMS под которую Вы переделываете свой html-шаблон, чтобы прописать вывод соответствующих функций (блоки, меню, авторизация и т.д.). Посмотрите код, как сделан похожий шаб под Вашу CMS.
Если совсем не разбираетесь в теме, то быстро сделать сможете только заплатив программисту. На freelansim.ru поищите человека.