За последние 24 часа нас посетили 16315 программистов и 1582 робота. Сейчас ищут 1535 программистов ...

Найти и заменить все значения action

Тема в разделе "Регулярные выражения", создана пользователем Newxor, 11 ноя 2014.

  1. Newxor

    Newxor Новичок

    С нами с:
    11 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте, уважаемые друзья!

    Есть html страницы, например:
    Код (Text):
    1. <form asdasd="1323" action="iswe.php" action="iwek.php" action="isk.php">
    2. <input....... >
    3. <form asdfs="12355" action="32.php" action="1234.php" action="123.php"....>
    4. ..................
    5. <form asdds="12233" action="ik.php" action="k.php" action="i.php">
    6. .................
    Необходимо найти и заменить все значения атрибута action на значение kiosk.php

    Я делаю так:
    Код (Text):
    1. $page = file_get_contents("page.php");
    2. $zamena = 'kiosk.php';
    3. $regexp = '/action\=\".*?\"/';
    4. preg_replace($regexp,$zamena,$page);
    5.  
    Замены не происходит, прошу Вашей помощи, поправьте меня,пожалуйста, где я допустил ошибку.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    str_replace("action=\"", "action=\"kiosk.php\"", $page);
     
  3. Newxor

    Newxor Новичок

    С нами с:
    11 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    Хм, значения,которые лежат в action ведь не поменяются в таком случае о_0
     
  4. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Можно через DOM сменить
     
  5. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Регулярка выглядит правильно, но на выходе вы получите не <form asdasd="1323" action="kiosk.php", а <form asdasd="1323" kiosk.php
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    поменяются. просто мусор останется. но его браузер проигнорирует =)
     
  7. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    Код (PHP):
    1. preg_replace('/(?<=action=["\']).+?(?=["\'])/i','kiosk.php',$page);