douxin5953 2014-08-14 16:33
浏览 47
已采纳

使用preg_replace_callback PHP获取第一个图像后的Add块

I am trying to get add block after 1st image, so far i have mange to get it after 1st paragraph .

Here is my code

$HPSB ='  <img src="**/facebook131update1.png" border="0" alt=""/>
    <p>        
    If you're a Facebook for iOS user and you checked the Updates tab in your App Store application recently, then you probably noticed the new Facebook version 13.1 update that was waiting there for you to install.
    </p>
    Facebook version 13.1 doesn't go very specific into what's new apart from "Bug Fixes," but according to Facebook's detailed ';


function callback_func($matches)
{
  static $count = 0;
  $ret = $matches[1];
  if (++$count == 1)
    $ret .= '<div style="float:left;margin:10px 10px 10px 0;">
                <script type="text/javascript"><!--
        google_ad_client = "ca-pub-***";
        /* iMac 336&#42;280 */
        google_ad_slot = "***";
        google_ad_width = 336;
        google_ad_height = 280;
        //-->
        </script>
        <script type="text/javascript"
        src="//pagead2.googlesyndication.com/pagead/show_ads.js">
        </script>
                </div>';
  return $ret;
}

$content = preg_replace_callback('#(<p>.*?</p>)#', 'callback_func', $HPSB);

How can get it, Please help

EDIT

$HPSB =
    <p style="text-align: center;">
    <img class="size-large wp-image-566952 aligncenter" title="Here’s more evidence Apples ‘iPhone 6' event will be on Sept. 9" src="http://abcaa.com/wp-content/uploads/2014/08/btsendate.jpg" alt="Here’s more evidence Apples ‘iPhone 6' event will be on Sept. 9"/>
    </a>
    </p>
    <p>Weve found an interesting piece of information that further backs up the recent report that Apple is planning to introduce the iPhone 6 at a special media event on Tuesday, Sept 9.</p>
    <p>Apple’s Back to School promotion will also stop on that same date. </p>
    <p>So it definitely makes sense that Apple doesnt want students being able to take advantage of the promotion when buying a new device.</p>
    <p>With this years promotion, college students can receive a $100 Apple Store gift card with the purchase of a Mac or a $50 store gift card when they purchase an iPad or iPhone. Students can also take advantage of Apples educational pricing.</p>
    <p>Along with college students, the promotion is available for parents of a student or a faculty or staff member from any grade level.</p>
    <p>The next-generation handset is expected to be unveiled in both a 4.7-inch and 5.5-inch version. It should also feature a faster A8 processor, a better camera, and other improvements.</p>
    <p>For other recent news, see: Read the entire Tom Hanks interview with the App Store on Twitter, all about apps.</p>
    <br/>
  • 写回答

1条回答 默认 最新

  • dongwen7283 2014-08-14 16:51
    关注

    I'm not completely sure I've got the question but you can get (and pass to callback_func) the text inside the p tag with:

    $content = preg_replace_callback("#<p>(.*?)<\/p>#is", 'callback_func', $HPSB);
    

    ----EDIT-----

    With the snippet I wrote you, you're not getting the content after 1st <p> but exclusively the content enclosed between its tags. If you want to get after 1st <img, you need:

    $content = preg_replace_callback("#<img.*/>(.*)#is", 'callback_func', $HPSB);
    

    This way you'll get everything after the img tag.


    ----------EDIT---------- (the last I swear)

    1) enclosed between p tags:

    $content = preg_replace_callback("#<p>(.*?)<\/p>#is", 'callback_func', $HPSB);
    

    result ($matches[1]):

    If you're a Facebook for iOS user and you checked the Updates tab in your App Store application recently, then you probably noticed the new Facebook version 13.1 update that was waiting there for you to install.
    ' (length=222)
    

    2) after img tag

    $content = preg_replace_callback("#<img.*/>(.*)#is", 'callback_func', $HPSB);
    

    result ($matches[1]):

    <p> 
    If you're a Facebook for iOS user and you checked the Updates tab in your App Store application recently, then you probably noticed the new Facebook version 13.1 update that was waiting there for you to install.
    </p>
    Facebook version 13.1 doesn't go very specific into what's new apart from "Bug Fixes," but according to Facebook's detailed ' (length=363)
    

    3) Now you ask the first <img, so:

    $content = preg_replace_callback("#(<img.*/>)#is", 'callback_func', $HPSB);
    

    result ($matches[1]):

    '<img src="**/facebook131update1.png" border="0" alt=""/>' (length=56)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线