Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用title属性替换img标记_Php_Regex - Fatal编程技术网

Php 用title属性替换img标记

Php 用title属性替换img标记,php,regex,Php,Regex,我有一个包含以下内容的HTML字符串: <p>your name : <img title="##name##" src="name.jpg"/></p> <p>your lastname: <img title="##lastname##" src="lastname.jpg"/></p> <p>your email : <img title="##email##" src="email.jpg"/>

我有一个包含以下内容的HTML字符串:

<p>your name :
<img title="##name##" src="name.jpg"/></p>
<p>your lastname:
<img title="##lastname##" src="lastname.jpg"/></p>
<p>your email :
<img title="##email##" src="email.jpg"/></p>
<p>submit
<img title="submit" src="submit.jpg"/></p>

最好的方法是什么

因此,首先要选择以下区域:
以“

然后,在提取的块中,您希望找到
以“###”开头,然后是1个或多个字符,然后以“##”结尾的部分。


通过这样写出来,我希望您能找到这样做的正则表达式。

因此,首先要选择以下任何区域:
以“
开头

然后,在提取的块中,您希望找到
以“###”开头,然后是1个或多个字符,然后以“##”结尾的部分。


通过这样写出来,我希望您能找到这样做的正则表达式。

因此,首先要选择以下任何区域:
以“
开头

然后,在提取的块中,您希望找到
以“###”开头,然后是1个或多个字符,然后以“##”结尾的部分。


通过这样写出来,我希望您能找到这样做的正则表达式。

因此,首先要选择以下任何区域:
以“
开头

然后,在提取的块中,您希望找到
以“###”开头,然后是1个或多个字符,然后以“##”结尾的部分。


通过这样写出来,我希望您能找到实现这一点的正则表达式。

使用HTML解析器来完成这项任务。下面是一个使用内置类的解决方案:

$dom=新的DOMDocument;
libxml\u使用\u内部错误(true);
$dom->loadHTML($html);
$tags=$dom->getElementsByTagName('img');
$length=$tags->length;
对于($i=$length-1;$i>=0;$i--){
$tag=$tags->item($i);
$title=$tag->getAttribute('title');
//检查标题的格式是否为“###…##”
if(preg#u match(“/###\w+?###/”,$title)){
$textNode=$dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode,$tag);
}
}
$html=preg\u replace(
“~]*>\s*~i”,
$dom->saveHTML()
);
echo$html;
输出:

$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);


$tags = $dom->getElementsByTagName('img');
$length = $tags->length;

for ($i=$length-1; $i>=0; $i--) {
    $tag = $tags->item($i);
    $title = $tag->getAttribute('title');

    // check if title is of the format '##...##'
    if (preg_match('/##\w+?##/', $title)) {
        $textNode = $dom->createTextNode($title);
        $tag->parentNode->replaceChild($textNode, $tag);
    }
}

$html = preg_replace(
    '~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '', 
    $dom->saveHTML()
);
echo $html;
您的姓名:
##名字##

您的姓氏: ##姓氏##

您的电子邮件: ##电子邮件##

提交


使用HTML解析器来完成此任务。下面是一个使用内置类的解决方案:

$dom=新的DOMDocument;
libxml\u使用\u内部错误(true);
$dom->loadHTML($html);
$tags=$dom->getElementsByTagName('img');
$length=$tags->length;
对于($i=$length-1;$i>=0;$i--){
$tag=$tags->item($i);
$title=$tag->getAttribute('title');
//检查标题的格式是否为“###…##”
if(preg#u match(“/###\w+?###/”,$title)){
$textNode=$dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode,$tag);
}
}
$html=preg\u replace(
“~]*>\s*~i”,
$dom->saveHTML()
);
echo$html;
输出:

$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);


$tags = $dom->getElementsByTagName('img');
$length = $tags->length;

for ($i=$length-1; $i>=0; $i--) {
    $tag = $tags->item($i);
    $title = $tag->getAttribute('title');

    // check if title is of the format '##...##'
    if (preg_match('/##\w+?##/', $title)) {
        $textNode = $dom->createTextNode($title);
        $tag->parentNode->replaceChild($textNode, $tag);
    }
}

$html = preg_replace(
    '~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '', 
    $dom->saveHTML()
);
echo $html;
您的姓名:
##名字##

您的姓氏: ##姓氏##

您的电子邮件: ##电子邮件##

提交


使用HTML解析器来完成此任务。下面是一个使用内置类的解决方案:

$dom=新的DOMDocument;
libxml\u使用\u内部错误(true);
$dom->loadHTML($html);
$tags=$dom->getElementsByTagName('img');
$length=$tags->length;
对于($i=$length-1;$i>=0;$i--){
$tag=$tags->item($i);
$title=$tag->getAttribute('title');
//检查标题的格式是否为“###…##”
if(preg#u match(“/###\w+?###/”,$title)){
$textNode=$dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode,$tag);
}
}
$html=preg\u replace(
“~]*>\s*~i”,
$dom->saveHTML()
);
echo$html;
输出:

$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);


$tags = $dom->getElementsByTagName('img');
$length = $tags->length;

for ($i=$length-1; $i>=0; $i--) {
    $tag = $tags->item($i);
    $title = $tag->getAttribute('title');

    // check if title is of the format '##...##'
    if (preg_match('/##\w+?##/', $title)) {
        $textNode = $dom->createTextNode($title);
        $tag->parentNode->replaceChild($textNode, $tag);
    }
}

$html = preg_replace(
    '~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '', 
    $dom->saveHTML()
);
echo $html;
您的姓名:
##名字##

您的姓氏: ##姓氏##

您的电子邮件: ##电子邮件##

提交


使用HTML解析器来完成此任务。下面是一个使用内置类的解决方案:

$dom=新的DOMDocument;
libxml\u使用\u内部错误(true);
$dom->loadHTML($html);
$tags=$dom->getElementsByTagName('img');
$length=$tags->length;
对于($i=$length-1;$i>=0;$i--){
$tag=$tags->item($i);
$title=$tag->getAttribute('title');
//检查标题的格式是否为“###…##”
if(preg#u match(“/###\w+?###/”,$title)){
$textNode=$dom->createTextNode($title);
$tag->parentNode->replaceChild($textNode,$tag);
}
}
$html=preg\u replace(
“~]*>\s*~i”,
$dom->saveHTML()
);
echo$html;
输出:

$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);


$tags = $dom->getElementsByTagName('img');
$length = $tags->length;

for ($i=$length-1; $i>=0; $i--) {
    $tag = $tags->item($i);
    $title = $tag->getAttribute('title');

    // check if title is of the format '##...##'
    if (preg_match('/##\w+?##/', $title)) {
        $textNode = $dom->createTextNode($title);
        $tag->parentNode->replaceChild($textNode, $tag);
    }
}

$html = preg_replace(
    '~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '', 
    $dom->saveHTML()
);
echo $html;
您的姓名:
##名字##

您的姓氏: ##姓氏##

您的电子邮件: ##电子邮件##

提交

试试这个

<p>your name :
##name##</p>
<p>your lastname:
##lastname##</p>
<p>your email :
##email##</p>
<p>submit
<img title="submit" src="submit.jpg"></p>
$content=preg_replace(“//”、“$1”、$content);
试试这个

<p>your name :
##name##</p>
<p>your lastname:
##lastname##</p>
<p>your email :
##email##</p>
<p>submit
<img title="submit" src="submit.jpg"></p>
$content=preg_replace(“//”、“$1”、$content);
试试这个

<p>your name :
##name##</p>
<p>your lastname:
##lastname##</p>
<p>your email :
##email##</p>
<p>submit
<img title="submit" src="submit.jpg"></p>
$content=preg_replace(“//”、“$1”、$content);
试试这个

<p>your name :
##name##</p>
<p>your lastname:
##lastname##</p>
<p>your email :
##email##</p>
<p>submit
<img title="submit" src="submit.jpg"></p>
$content=preg_replace(“//”、“$1”、$content);

我想你可以试试这个:

$content = preg_replace('/<img.*?(##.+##).*?\/>/', '$1', $content);
$content=preg_replace(“//”、“${1}”、$content);
$content=str#u replace(“##,”,“$content);

我想你可以试试这个:

$content = preg_replace('/<img.*?(##.+##).*?\/>/', '$1', $content);
$content=preg_replace(“//”、“${1}”、$content);
$content=str#u replace(“##,”,“$content);

我想你可以试试这个:

$content = preg_replace('/<img.*?(##.+##).*?\/>/', '$1', $content);
$content=preg_replace(“//”、“${1}”、$content);
$content=str#u replace(“##,”,“$content);

我想你可以试试这个:

$content = preg_replace('/<img.*?(##.+##).*?\/>/', '$1', $content);
$content=preg_replace(“//”、“${1}”、$content);
$content=str#u replace(“##,”,“$content);

谢谢,为什么###lastname###不替换也不工作!?很好,但我认为在检查格式方面,这个区域是很好的工作/##([^#]*)##/@ArazJafaripur:你为什么这么认为?正则表达式匹配(并捕获)
##
,后跟任何非
#
的内容,直到它找到
##
-在这种情况下,您不想在正则表达式中捕获标题-您已经使用
getAttribute()
方法提取了标题属性:)谢谢,为什么#lastname#不替换并且不工作!?很好,但我认为在检查f时