Php需要比str_replace更广泛的东西来搜索整个文档,而不仅仅是字符串

时间:2017-08-09 18:20:04

标签: php str-replace

我看了很多地方,似乎无法找到如何做str_replace但是搜索整个文档而不只是一个字符串。

例如,通过使用字符串替换,我可以检查字符串,查找某些文本,并用其他内容替换该文本。

我想查看整个页面(整个index.php页面)。查找某些文本,并用新文本替换该文本。

我可以使用jquery完成此任务,唯一的问题是它在页面加载后完成,因此它的加载会使信息加倍。我需要在页面加载之前完成它。或者也许还有另一种方法可以在页面加载之前用javascript更改文本。但是数字PHP最适合这个。有什么建议吗?

- 更新一次 -

我正在使用easyazon插件加载亚马逊的产品。以下是将图像从亚马逊拉入我的索引页面的具体代码。

<?php if($image_atts) { ?>
    <div class="easyazon-block-image-container">
        <?php printf('<a %s><img %s /></a>', easyazon_collapse_attributes($link_atts), easyazon_collapse_attributes($image_atts)); ?>
    </div>
    <?php } ?>

在$ image_atts数组下,代码为&gt;

if(isset($item['images']) && is_array($item['images'])) {
                $image_index = 3;
                while($image_index >= 0) {
                    if(isset($item['images'][$image_index])) {
                        $image_atts = array(
                            'alt'    => $item['title'] ? $item['title'] : '',
                            'class'  => 'easyazon-block-information-image',
                            'height' => $item['images'][$image_index]['height'],
                            'src'    => $item['images'][$image_index]['url'],
                            'width'  => $item['images'][$image_index]['width'],
                        );

                        break;
                    }

                    $image_index--;
                }
            } else {
                $image_atts = false;
            }

在生成后查看index.php的源代码。图片标签看起来像这样。

<div class="easyazon-block-image-container">
    <img class="xxx" src="https://xxxx.amazon.com/xxxx/xxx/xxx/xxxxx120.jpg">
</div>

这就是我的问题所在。如果你看一下图像标签的src部分,从亚马逊下拉120px宽的小图像,如文件名末尾所示。

我需要的是通过将120更改为300来从亚马逊下拉更大宽度的图像。

https://xxxx.amazon.com/xxxx/xxx/xxx/xxxxx300.jpg

反过来将图像拉下300px宽。

我尝试在jquery中执行此操作,以搜索字符串“120”并将其替换为“300”。这工作成功但反过来因为它在浏览器加载后发生,它导致浏览器下载2个不同的图像。一个在120px,一个在300px。所以这绝对不行。对于页面上的每个图像,它将下载两个版本的图像。

我需要做的是在 easyazon-block-image-container 中查找字符串120,然后在将其发送到浏览器之前将其更改为300。我希望这有助于提供更多的代码。

我不想在开发人员隐私的插件上提供太多代码。但是为了我自己的防守,我看了整个插件,无法找到插件告诉自己下载120px版本的图像的任何地方。如果是这种情况,我可以在代码中将其更改为300。任何帮助,将不胜感激。阻止我使用我的网站的最后一件事:(

1 个答案:

答案 0 :(得分:0)

字符串可以是您想要的短或长,str_replace()应该可以正常工作。

请参阅:http://php.net/manual/en/function.str-replace.php