相关疑难解决方法(0)

正则表达式不应与特定数字匹配

我想匹配这样的每个字符串

<img src="whatever" whatever alt="whatever" whatever height="any number but not 162" whatever />
Run Code Online (Sandbox Code Playgroud)

换句话说,我希望匹配每个字符串,在"链接"之后包含除数字162之外的任何字符串(整数而不仅仅是单个字符).我用这个

function embed($strr) {
    $strr = preg_replace('@<img.*src="([^"]+)"(?:[^1]+|1(?:$|[^6]|6(?:$|[^2]))) />@is', '[img]$1[/img]', $strr);
 return $strr;
}
Run Code Online (Sandbox Code Playgroud)

但这与包含1而不是162的所有内容都不匹配.我该如何解决?

php regex

1
推荐指数
1
解决办法
69
查看次数

从URL将图像保存到服务器

我用CKEditor构建了一个迷你内容管理系统.用户可以从其他网站粘贴图像URL.有没有办法在用户提交内容时获取所有图像URL,将所有这些图像保存到服务器,并用我的服务器的URL替换另一个服务器的URL?

例如,用户写了这样的东西:

<img src="somews.com/img1.jpg"/>Lorem Ipsum is simply dummy text of the printing and typesetting industry. ...
Run Code Online (Sandbox Code Playgroud)

在提交过程中,PHP会将图像保存somews.com/img1.jpg到服务器,将其URL转换为myserver.com/photos/img1.jpg并替换 <img src="somews.com/img1.jpg"/>为..这可能吗?

php url replace image

1
推荐指数
1
解决办法
7073
查看次数

如何在html片段的X段之后插入一串文本?

可能重复:
如何使用PHP解析和处理HTML?

$content = "
<p>This is the first paragraph</p>
<p>This is the second paragraph</p>
<p>This is the third paragraph</p>";
Run Code Online (Sandbox Code Playgroud)

给定上面的一串html内容,我需要在第N段标记之后插入.

我如何解析内容并插入给定的文本字符串,在第2段之后说"你好世界"?

php regex

1
推荐指数
2
解决办法
8544
查看次数

php - 带有结束针的strstr

可能重复:
如何使用PHP解析和处理HTML?
PHP - 通过搜索字符获取字符串的一部分,而不是计算它们?

我有一个字符串:

$str = "hello world, this is mars"
Run Code Online (Sandbox Code Playgroud)

我想要一个改进的strstr,看起来像这样:

istrstr($str, 'world', 'is')
Run Code Online (Sandbox Code Playgroud)

并且返回值将是:

"world, this"
Run Code Online (Sandbox Code Playgroud)

换句话说,有一根针开始,一根针结束.

我只是想知道是否已经有解决方案,或者我应该自己写一个...

更新:

基于答案,我做了这个功能:

function istrstr($haystack, $needle_start, $needle_end, $include = false) {

    if (!$include) {
        $pos_start = strpos($haystack, $needle_start) + strlen($needle_start);
        $pos_end = strpos($haystack, $needle_end, $pos_start);
        return substr($haystack, $pos_start, $pos_end - $pos_start);
    }

}
Run Code Online (Sandbox Code Playgroud)

现在我只需要排除版本,所以我没有打扰包括一个......

php

1
推荐指数
1
解决办法
1295
查看次数

Php字符串处理

我需要<p>在字符串中找到标签.然后我想存储来自(包括)的字符串

标记到另一个变量.

例如,我有字符串名称firstString;

firstString = "<div id='tab-1'><p>This is first string</p></div>"

我想要第二个字符串

secondString = "<p>This is first string</p>"

我只需要第一个<p>标签.

php

1
推荐指数
1
解决办法
277
查看次数

PHP中的preg/regex

我正在使用正则表达式.从来没有完全理解它真正的问题是:是否有人有一个很好的网站,解释表达之间的差异,而不只是发布像

$regexp = "/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/";
Run Code Online (Sandbox Code Playgroud)

然后讨论整个线路的作用.而不是每个表达式将做什么.我已经尝试使用Google搜索许多不同版本的preg_replace和regex教程,但他们似乎都认为我们已经知道像\ b [^>]*会做什么.

二级.我试图这样做的原因:我想转

<span style="color: #000000">*ANY NUMBER*</span>
Run Code Online (Sandbox Code Playgroud)

<span style="color: #0000ff">*ANY NUMBER*</span>
Run Code Online (Sandbox Code Playgroud)

一些变种,我已经尝试过一些只是没有工作一些使脚本废话.

$data = preg_replace("/<span style=\"color: #000000\">([0-9])</span>/", "<span style=\"color: #FFCC00\">$1</span>", $data);//just tried to match atleast 0-9

$data = preg_replace("/<span style=\"color: #000000\"\b[^>]*>(.*?)</span>/", "<span style=\"color: #FFCC00\">$1</span>", $data);

$data = preg_replace("/<span style=\"color: #000000\"\b[^>]*>([0-9])</span>/", "<span style=\"color: #FFCC00\">$1</span>", $data);
Run Code Online (Sandbox Code Playgroud)

这个具体问题的答案对我来说并不像一个网站那么重要,所以检查就是这样.尝试了很多不同的网站,我很确定它不高于我的理解我只是找不到一个好的所有坏教程/示例农场.W3和phpdotnet的正常回退不具备我这次需要的东西.

EDIT1对于那些最终在这里寻找类似答案的人:

$data = preg_replace("/<span style=\"color: #000000\">([0-9]{1,})<\/span>/", "<span style=\"color: #FFCC00\">$1</span>", $data);
Run Code Online (Sandbox Code Playgroud)

做了它需要的东西.可悲的是,这是我尝试的第一件事之一,但因为我没有放</ span>而不是它不起作用,我不知道"[0-9] {1,}"是否是最合适的匹配方式number(告诉它匹配任何整数0-9与[0-9]至少一次,尽可能多次与{1,},它仍然适合目的)

ROY Finley发布时间:http: //www.macronimous.com/resources/writing_regular_expression_with_php.asp 它是一个很好的网站,有一个表达式定义列表和一个很好的示例后续工作.

另外:regular-expressions.info/tutorial.html发布了几次.它是一个更慢,更深入的步行,但如果你被卡住,我就是它的好.

在我有机会玩它们之后,会弹出regex101和解析器.

EDIT2 DWright在"掌握正则表达式"下面发布了一个书籍链接.如果你看一下正则表达式并且无法对字符的卷积做出正面或反面,那么它绝对值得一试.花了大约一个半小时来阅读大约一半,但这与谷歌花费的时间相比没有时间,并且用来避免它的乱七八糟的工作.

下面链接的html解析也适用于这个特定问题.

php regex preg-replace html-parsing

1
推荐指数
1
解决办法
485
查看次数

为什么这个preg_match_all会突然停止工作?

这段代码工作了几天,直到它在最糟糕的时间停止工作.它只是从NOAA网站提取天气警报信息并将其显示在我的页面上.有人可以告诉我为什么会突然失败?

$file = file_get_contents("http://forecast.weather.gov/showsigwx.php?warnzone=ARZ018&warncounty=ARC055");  
preg_match_all('#<div id="content">([^`]*?)<\/div>#', $file, $matches); 
$content = $matches[1];  

echo "content = ".$content."</br>" ;
echo "matches = ".$matches."</br>" ;
print_r ($matches); echo "</br>";
echo "file </br>".$file."</br></br>" ;
Run Code Online (Sandbox Code Playgroud)

现在我得到的只是一个空数组.

这是输出..

content = Array
matches = Array
Array ( [0] => Array ( ) [1] => Array ( ) )
file = the full page as requested by file_get_contents
Run Code Online (Sandbox Code Playgroud)

php file-get-contents

1
推荐指数
1
解决办法
179
查看次数

将XML数据提取到php

我正在尝试从XML文件中提取数据(http://freegeoip.net/xml/google.com).您可以看到该文件的内容如下所示:

<Response>
<Ip>74.125.235.3</Ip>
<CountryCode>US</CountryCode>
<CountryName>United States</CountryName>
<RegionCode>CA</RegionCode>
<RegionName>California</RegionName>
<City>Mountain View</City>
<ZipCode>94043</ZipCode>
<Latitude>37.4192</Latitude>
<Longitude>-122.0574</Longitude>
<MetroCode>807</MetroCode>
<AreaCode>650</AreaCode>
</Response>
Run Code Online (Sandbox Code Playgroud)

我想获取存储在<latitude><longitude>标签中的信息,并将它们存储在单独的变量中.问题是,我不知道如何做到这一点,并想知道是否有人可以告诉我如何用PHP解析XML文件?

php xml latitude-longitude geoip

1
推荐指数
1
解决办法
3万
查看次数

如何在 PHP 中读取 .GPX 文件中的值?

我有一个问题,我已经尝试解决两天了,但找不到解决它所需的信息。

我想要做的是从 .gpx 文件中获取 lat、lon 和 ele 值并将它们放入表中。

我制作了页面让用户将 gpx 文件上传到服务器上。然后,我创建一个名为一、二、三等的新表,数据库中的下一个数字称为“vluchten”。

该表包含 lat、lon 和 ele 字段,全部都是双精度数。

现在,我需要打开用户可能上传的任何 .gpx 文件,并将纬度、经度和坐标提取到我的表中。

我已经研究过使用 php 文件系统函数(fopen、fseek 等),但它们似乎对我的需求没有用处。我还尝试将其作为 XML 读取,但这也不起作用(也许我犯了错误)。

非常欢迎任何关于如何从 .gpx 文件中获取值并将它们放入数据库表中的建议!PHP 页面将接收 lat、lon 和 ele 需要进入的表名称$_POST['name']

简而言之,我的问题是:如何从 .gpx 中取出 lon、lat 和 ele 并使用 SQL 将它们放入表中?

php xml mysql gpx

1
推荐指数
1
解决办法
8453
查看次数

正则表达式:从 html 文件中删除所有注释,但保留相同数量的行

如果文件中的注释覆盖了其中的 6 行,则应删除该注释并替换为与注释行数相等的空行。

这是我的意思的一个小示范。给定的 file.html 有 10 行:

    line 1 : <!-- text
    line 2 :      text
    line 3 :      text
    line 4 :      empty line
    line 5 :      text
    line 6 : -->
    line 7 :empty line
    line 8 :text
    line 9 :empty line
    line 10 :text
Run Code Online (Sandbox Code Playgroud)

预期的输出将是:

    line 1 :empty line
    line 2 :empty line
    line 3 :empty line
    line 4 :empty line
    line 5 :empty line
    line 6 :empty line
    line 7 :empty line
    line 8 :text …
Run Code Online (Sandbox Code Playgroud)

php regex preg-replace laravel

1
推荐指数
1
解决办法
82
查看次数