php - 这段正则该怎么改
给我你的怀抱
给我你的怀抱 2017-06-29 10:08:37
[PHP讨论组]

刚开始学正则,试着写了一个,结果报错了,我的代码是:

<?php
$content = file_get_contents('page.html');
$preg='/^<meta property="og:image" content="{1}(.*)" />{1}$/';
if(preg_match($preg,$content,$arr)){ 
echo $arr[0]; 
}else{ 
echo "fail";
}
?>

目的是要匹配到<meta property="og:image" content="https://scontent-nrt1-1.cdninstagram.com/t51.2885-15/e35/19428654_117834015492201_3447552780867207168_n.jpg" />中的地址。

给我你的怀抱
给我你的怀抱

全部回复(4)
怪我咯

<?php
define('CLI_SCRIPT', true);

$content = file_get_contents('page.html');
preg_match_all('/<meta [^>]*content=\"(.+?)\"/', $content, $matches);
var_dump($matches);   // 需要的字符串在$matches[1]中,具体信息可以打印了看
PHP中文网

你别加开始和结束符号,匹配出内容的话,不应该加开始结束符号。。。。

曾经蜡笔没有小新

目测是{1}那里错了

女神的闺蜜爱上我

,这个也可以。。不过很奇怪,print_r和var_dump出来的不一样

$str = '<meta property="og:image" content="https://scontent-nrt1-1.cdninstagram.com/t51.2885-15/e35/19436259_259857144497308_9134693580806291456_n.jpg" />';

$preg='/^<meta property="og:image" content="([^\"]*)"/';
if(preg_match($preg, $str, $arr)){
    echo "<pre>";

    var_dump($arr);

    print_r($arr);

    echo $arr['1'];
}else{
    echo "fail";
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号